Delphi Developers
Internet Protocol Helper Component

Download MagIpHlp
v2.5 - 12 Sep 2012
(372,484 bytes)

Delphi Home Page

Other Magenta
Sites

CodeLook
lookup telephone
numbers and cost

ComCap v4
data capture utility

DUN Manager
broadband and dial-up
networking enhancement

Encode UNIX
Passwords

MailMaint
POP3 email

PassDir ISAPI Filter

Update Windows
Registration Details

Delphi Developers

UK Telecom
Tariff Comparisons

Links to Other
General Sites

Links to Other
Telecom Sites


Magenta Home Page

Email Magenta Systems

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
GetRTTAndHopCount
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. 

History

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

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
Fax 020 8656 8127, International Fax +44 20 8656 8127
http://www.magsys.co.uk/
Copyright © 2014 Magenta Systems Ltd, England. All Rights Reserved.