mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-10-14 19:29:08 +02:00
174 lines
5.8 KiB
PHP
174 lines
5.8 KiB
PHP
{
|
|
This file is part of the Free Pascal run time library.
|
|
Copyright (c) 2006 Free Pascal development team.
|
|
|
|
See the file COPYING.FPC, included in this distribution,
|
|
for details about the copyright.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
**********************************************************************}
|
|
|
|
{exported functions list = to do,
|
|
* please remove functions done *
|
|
ordinal name
|
|
|
|
AddIPAddress
|
|
AllocateAndGetIfTableFromStack
|
|
AllocateAndGetIpAddrTableFromStack
|
|
CreateIpForwardEntry
|
|
CreateIpNetEntry
|
|
CreateProxyArpEntry
|
|
DeleteIPAddress
|
|
DeleteIpForwardEntry
|
|
DeleteIpNetEntry
|
|
DeleteProxyArpEntry
|
|
DllEntry
|
|
EnableRouter
|
|
FlushIpNetTable
|
|
GetAdapterIndex
|
|
GetAdapterOrderMap
|
|
GetAdaptersAddresses
|
|
GetBestInterface
|
|
GetBestInterfaceEx
|
|
GetBestRoute
|
|
GetFriendlyIfIndex
|
|
GetIcmpStatistics
|
|
GetIcmpStatisticsEx
|
|
GetIfEntry
|
|
GetIfTable
|
|
GetInterfaceInfo
|
|
GetIpAddrTable
|
|
GetIpForwardTable
|
|
GetIpNetTable
|
|
GetIpStatistics
|
|
GetIpStatisticsEx
|
|
GetNetworkParams
|
|
GetPerAdapterInfo
|
|
GetRTTAndHopCount
|
|
GetTcpStatistics
|
|
GetTcpStatisticsEx
|
|
GetTcpTable
|
|
GetUdpStatistics
|
|
GetUdpStatisticsEx
|
|
GetUdpTable
|
|
GetUniDirectionalAdapterInfo
|
|
Icmp6CreateFile
|
|
Icmp6ParseReplies
|
|
Icmp6SendEcho2
|
|
IcmpCloseHandle
|
|
IcmpCreateFile
|
|
IcmpParseReplies
|
|
IcmpSendEcho
|
|
IcmpSendEcho2
|
|
IpReleaseAddress
|
|
IpRenewAddress
|
|
IsLocalAddress
|
|
NotifyAddrChange
|
|
NotifyRouteChange
|
|
SendARP
|
|
SetIfEntry
|
|
SetIpForwardEntry
|
|
SetIpNetEntry
|
|
SetIpStatistics
|
|
SetIpTTL
|
|
SetTcpEntry
|
|
UnenableRouter
|
|
}
|
|
|
|
{$ifdef read_interface}
|
|
|
|
//*****************************************************************************
|
|
// consts
|
|
//*****************************************************************************
|
|
const
|
|
IpHlpApiDLL = 'iphlpapi';
|
|
|
|
//dwForwardProto types
|
|
PROTO_IP_OTHER = 1;
|
|
PROTO_IP_LOCAL = 2;
|
|
PROTO_IP_NETMGMT = 3;
|
|
PROTO_IP_ICMP = 4;
|
|
|
|
// Definitions and structures used by getnetworkparams and getadaptersinfo apis
|
|
MAX_ADAPTER_DESCRIPTION_LENGTH = 128;
|
|
MAX_ADAPTER_NAME_LENGTH = 256;
|
|
MAX_ADAPTER_ADDRESS_LENGTH = 8 ;
|
|
DEFAULT_MINIMUM_ENTITIES = 32 ;
|
|
MAX_HOSTNAME_LEN = 128;
|
|
MAX_DOMAIN_NAME_LEN = 128;
|
|
MAX_SCOPE_ID_LEN = 256;
|
|
|
|
// Node Type
|
|
|
|
BROADCAST_NODETYPE =1;
|
|
PEER_TO_PEER_NODETYPE =2;
|
|
MIXED_NODETYPE =4;
|
|
HYBRID_NODETYPE =8;
|
|
|
|
//*****************************************************************************
|
|
// types
|
|
//*****************************************************************************
|
|
|
|
type
|
|
// IP_ADDRESS_STRING
|
|
IP_ADDRESS_STRING = Array[0..3,0..3] of Char;
|
|
TIP_ADDRESS_STRING = IP_ADDRESS_STRING;
|
|
IP_MASK_STRING = IP_ADDRESS_STRING;
|
|
TIP_MASK_STRING = IP_ADDRESS_STRING;
|
|
PIP_ADDRESS_STRING = ^IP_ADDRESS_STRING;
|
|
PIP_MASK_STRING = PIP_ADDRESS_STRING;
|
|
|
|
// IP_ADDR_STRING
|
|
PIP_ADDR_STRING = ^_IP_ADDR_STRING;
|
|
_IP_ADDR_STRING = Record
|
|
Next : PIP_ADDR_STRING;
|
|
IpAddress : IP_ADDRESS_STRING;
|
|
IpMask : IP_MASK_STRING;
|
|
Context : DWORD;
|
|
end;
|
|
IP_ADDR_STRING = _IP_ADDR_STRING;
|
|
TIP_ADDR_STRING = IP_ADDR_STRING;
|
|
|
|
// ADAPTER_INFO
|
|
PIP_ADAPTER_INFO = ^_IP_ADAPTER_INFO;
|
|
_IP_ADAPTER_INFO = Record
|
|
Next : PIP_ADAPTER_INFO;
|
|
ComboIndex : DWORD;
|
|
AdapterName : Array[0..MAX_ADAPTER_NAME_LENGTH + 3] of Char;
|
|
Description : Array[0..MAX_ADAPTER_DESCRIPTION_LENGTH + 3] of Char;
|
|
AddressLength : UINT;
|
|
Address : Array [0..MAX_ADAPTER_ADDRESS_LENGTH-1] of Byte;
|
|
Index : DWORD;
|
|
aType : UINT;
|
|
DhcpEnabled : UINT;
|
|
CurrentIpAddress : PIP_ADDR_STRING;
|
|
IpAddressList : IP_ADDR_STRING;
|
|
GatewayList : IP_ADDR_STRING;
|
|
DhcpServer : IP_ADDR_STRING;
|
|
HaveWins : BOOL;
|
|
PrimaryWinsServer : IP_ADDR_STRING;
|
|
SecondaryWinsServer : IP_ADDR_STRING;
|
|
LeaseObtained : time_t;
|
|
LeaseExpires : time_t;
|
|
end;
|
|
IP_ADAPTER_INFO = _IP_ADAPTER_INFO;
|
|
TIP_ADAPTER_INFO = _IP_ADAPTER_INFO;
|
|
|
|
//*****************************************************************************
|
|
// functions
|
|
//*****************************************************************************
|
|
|
|
function GetNumberOfInterfaces(var dwNumIf : DWORD): DWORD; external IpHlpApiDLL name 'GetNumberOfInterfaces';
|
|
function GetAdaptersInfo( pAdapterInfo : PIP_ADAPTER_INFO; var OutBufLen : ULONG): DWORD; external IpHlpApiDLL name 'GetAdaptersInfo';
|
|
|
|
{$endif read_interface}
|
|
|
|
{$ifdef read_implementation}
|
|
|
|
{$endif read_implementation}
|
|
|
|
|