Delphi Developers
Internet Protocol Helper Component

Request Free
Download Password

Download MagIpHlp
v3.0 - 26 Nov 2018
(380,510 bytes)

Delphi Home Page

Other Magenta

lookup telephone
numbers, cost and
broadband availability

ComCap v5
data capture utility

DUN Manager
broadband and dial-up
networking enhancement

POP3 email

Delphi Developers

UK Telecom
Tariff Comparisons

Links to Other
General Sites

Links to Other
Telecom Sites

Magenta Home Page

Augus 2023 - Now part of ICS V9.0 and later, as OverbyteIcsIpHlpApi.pas with new components TIcsNeighbDevices and TIcsIpChanges, with a new sample application OverbyteIcsNetTools.dpr with full IPv6 support

26th November 2018 - added intitial IPv6 support.

9th October 2018 - Sorry, you now need to request a free file download password to access Delphi components.

Magenta Systems Internet Protocol Helper Component is a set of functions implementing the the Internet Protocol Helper (IP Helper) APIs. They enable the retrieval and modification of network configuration settings for the local computer. The component loads all functions dynamically so applications will still run on earlier Windows versions that did not support certain IP Helper functions. The component returns the various parameters returned by the APIs as Delphi records, for ease of integration into applications.

A comprehensive TCP/IP/ARP Monitor application is included using all the APIs to display TCP and UPD Connections (and the names of applications using them), IP address and routing tables, network adaptor information (such as MAC and IP addresses), ARP table, network statistics and dynamic DNS server addresses.

IP Helper provides capabilities in the following areas:

- Retrieving Information About Network Configuration
- Managing Network Adapters
- Managing Interfaces
- Managing IP Addresses
- Using the Address Resolution Protocol
- Retrieving Information on the Internet Protocol and the Internet Control Message Protocol
- Managing Routing
- Receiving Notification of Network Events
- Retrieving Information About the Transmission Control Protocol and the User Datagram Protocol

The conversion and demo application are based on earlier work by Dirk Claessens, but with many bug fixes and enhancements.

Converted IP Helper APIs

Note this is only a partial conversion of IP Helper APIs, where most Windows API are converted into a Delphi function that return one or more records or string lists. Many of these records include dynamic string arrays, for instance returning multiple IP addresses.

AllocateAndGetTcpExTableFromStack as IpHlpTCPTable
AllocateAndGetUdpExTableFromStack as IpHlpUDPTable
GetAdaptersInfo as IpHlpAdaptersInfo
GetIcmpStatistics as Get_ICMPStats
GetIfEntry as IpHlpIfEntry
GetIfTable as IpHlpIfTable
GetIpAddrTable as Get_IPAddrTable
GetIpForwardTable as Get_IPForwardTable
GetIpNetTable as Get_ARPTable
GetIpStatistics as Get_IPStatistics
GetNetworkParams as IpHlpNetworkParams
GetPerAdapterInfo as IpHlpAdaptersInfo
GetTcpStatistics as IpHlpTCPStatistics
GetTcpTable as IpHlpTCPTable
GetUdpStatistics as Get_UdpStatistics
GetUdpTable as IpHlpUDPTable
GetExtendedTcpTable as IpHlpTCPTable
GetExtendedUdpTable as IpHlpUDPTable
GetAdaptersAddresses as IpHlpAdaptersInfo

Full information about these APIs is available in MSDN.

DNS Helper

The DNS Helper unit returns the dynamic DNS address for all platforms, primarily by running the winipcfg.exe or ipconfig.exe programs and redirecting the report output to a text file which is parsed for the address. On Windows 98, ME, W2K and XP, it's more efficient to use IpHlpNetworkParams which returns the dynamic DNS IP address.

Compatible with Delphi 7/2006/2007/2009/2010/XE/XE2/XE3, tested with Windows XP, 2003, Vista, 2008, 7, 8 and 2012. Note that some IP Helper APIs have minimum OS requirements.  The Delphi 2009 and later versions supports Unicode. 


v1.9 - 8th August 2006
Corrected IF_xx_ADAPTER type literals, thanks to Jean-Pierre Turchi. Interfaces now show type description, adaptor correct type description.  Made main window resizable, needs minimum screen 1024x768.

v2.0 - 25th February 2007
Many more IF_xx_ADAPTER type literals, thanks to Jean-Pierre Turchi

v2.1 - 5th August 2008
Made compatible with Delphi 2009, supports Unicode

v2.2 - 16th January 2009
Added GetAdaptersAddresses (XP and later) has IPv6 addresses (but not yet getting them). Note: gateway IPs don't seem to be returned by GetAdaptersAddresses.
Added GetExtendedTcpTable and GetExtendedUdpTable (XP SP2, W2K3 SP1, Vista and later), replacements for AllocateAndGetTcpExTableFromStack/etc, added connection start time.
Using WideString for program paths and adaptor descriptions for Unicode compatibility.
Added two public variables:
ShowExePath if true displays full program path for connection tables
UseAdressesAPI if true uses GetAdaptersAddresses instead of GetAdaptersInfo

v2.3 - 3rd August 2009
Changed ULONGLONG to LONGLONG for Delphi 7 compatibility

v2.4 - 8th August 2010
Fixed various cast warning for Delphi 2009 and later

v2.5 - 12th August 2011
Fixes for 64-bit compatibility with Delphi XE2 and later

v3.0 - 26th November 2018
Added IPv6 support, numerous new structures and functions, Vista and later.
Only supporting XP SP3 and later, so remove code for earlier OSs. Still runs on XP SP3, but TCP and UDP connection lists not supported and some other functions return limited info, IP addresses in particular. Note XP has not been tested for several years since it's out of support.
Added notification functions for interface changes.
Larger windows, some columns wider.

IPv6 not yet supported for ARP or IP Routing table, and need more documentation on IPV6.

August 2023
No more updates here, please use the new units and sample in ICS. 

Magenta Systems Internet Protocol Helper Component is copyright by Magenta Systems Ltd, but may be used freely.

Magenta Systems Ltd, 9 Vincent Road, Croydon CR0 6ED, United Kingdom
Phone 020 8656 3636, International Phone +44 20 8656 3636
Copyright © 2024 Magenta Systems Ltd, England. All Rights Reserved.