v3.0 - 26 Nov 2018
numbers, cost and
data capture utility
broadband and dial-up
Links to Other
Links to Other
Magenta Home Page
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
- 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.
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
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
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
v2.4 - 8th August 2010
Fixed various cast warning for Delphi 2009 and
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
Larger windows, some columns wider.
IPv6 not yet
supported for ARP or IP Routing table, and need more documentation on IPV6.
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 © 2021 Magenta Systems Ltd, England. All Rights Reserved.