Using the Address Resolution Protocol (Windows Embedded CE 6.0)
1/6/2010
You can use IP Helper to perform Address Resolution Protocol (ARP) operations for the local computer. Use the following functions to retrieve and modify the ARP table.
The GetIpNetTable retrieves the ARP table. The ARP table contains the mapping of IP addresses to physical addresses. Physical addresses are sometimes referred to as Media Access Controller (MAC) addresses. Changes to this table can be made with SetIpNetEntry.
Use the CreateIpNetEntry and DeleteIpNetEntry functions to add or remove particular ARP entries to or from the table. The FlushIpNetTable function deletes all entries from the table.
To create or delete proxy ARP entries, use the CreateProxyArpEntry and DeleteProxyArpEntry functions.
The SendARP function sends an ARP request to the local network.
The following table describes each GetIpNetTable variable.
Value | Description |
---|---|
pIpNetTable |
Pointer to a buffer that, on successful return, contains the IP-to-physical address mapping table as a MIB_IPNETTABLE structure. |
pdwSize |
Specifies the size of the buffer pointed to by the pIpNetTable parameter. If the buffer is not large enough to hold the returned mapping table, the function sets this parameter equal to the required buffer size. |
bOrder |
Specifies whether the returned mapping table should be sorted in ascending order by IP address. If this parameter is TRUE, the table is sorted. |
MIB_IPNETTABLE |
dwNumEntries Specifies the number of ARP entries in the table. table[ANY_SIZE] Pointer to a table of ARP entries implemented as an array of MIB_IPNETROW structures. |
MIB_IPNETROW (All fields are read-write, and can be changed by the API user with the SetIpNetEntry function) |
dwIndex Specifies the index of the adapter. dwPhysAddrLen Specifies the length of the physical address. bPhysAddr[MAXLEN_PHYSADDR] Specifies the physical address. dwAddr Specifies the IP address. dwType Specifies the type of ARP entry. This type can be one of the following values. 4 Static 3 Dynamic 2 Invalid 1 Other |
The following table describes each CreateIpNetEntry variable.
Value | Description |
---|---|
pArpEntry |
Pointer to a MIB_IPNETROW structure that specifies information for the new entry. The caller must specify values for all members of this structure. (See GetIpNetTable table, above). |
The following table describes each DeleteIpNetEntry variable.
Value | Description |
---|---|
pArpEntry |
Pointer to a MIB_IPNETROW structure. The information in this structure identifies the entry to delete. The caller must specify values for at least the dwIndex and dwAddr members of this structure. (See GetIpNetTable table, above). |
The following table describes each FlushIpNetTable variable.
Value | Description |
---|---|
dwIfIndex |
Specifies the index of the interface for which to delete all ARP entries. |
The following table describes each CreateProxyArpEntry variable.
Value | Description |
---|---|
dwAddress |
Specifies the IP address for which this computer acts as a proxy. |
dwMask |
Specifies the subnet mask for the IP address specified by the dwAddress parameter. |
dwIfIndex |
Specifies the index of the interface on which to proxy ARP for the IP address specified by the dwAddress parameter. In other words, when an ARP request for dwAddress is received on this interface, the local computer responds with the physical address of this interface. If this interface is of a type that does not support ARP, such as PPP, then the call fails. |
The following table describes each DeleteProxyArpEntry variable.
Value | Description |
---|---|
dwAddress |
Specifies the IP address for which this computer is acting as a proxy. |
dwMask |
Specifies the subnet mask for the IP address specified by the dwAddress parameter. |
dwInIndex |
Specifies the index of the interface on which this computer is supporting proxy ARP for the IP address specified by dwAddress. |
The following table describes each SendARP variable.
Value | Description |
---|---|
DestIp |
Specifies the destination IP address. The ARP request attempts to obtain the physical address that corresponds to this IP address. |
SrcIP |
Specifies the IP address of the sender. This parameter is optional. The caller may specify zero for the parameter. |
pMacAddr |
Pointer to a ULONG variable. On successful return, this variable contains the physical address that corresponds to the IP address specified by the DestIP parameter. |
PhyAddrLen |
Pointer to a ULONG variable. On successful return, this variable contains the length of the physical address pointed to by the pMacAddr parameter. |