Sometimes, you need to know a bit about the connection that you've established with NetLibOpen, especially if it was established with DHCP. Perhaps you need to do some debugging of the DNS server, or perhaps you need to see what gateway your application actually connected to. Even more likely, you might need to know what IP address your device was assigned. You might use this address to establish a P2P service or a multiplayer game connection. There are many reasons why your application might need to do this, but I'm sure you can come up with your own ideas as well.
All of these settings can be found in NetMgr.h, but for the sake of simplicity, I present the settings that I have found invaluable when trying to debug network connectivity issues:
UInt32 dhcpPPPAddress;
UInt32 subnetMask;
UInt32 serverPPPAddress;
UInt32 primaryDNS;
UInt32 secondaryDNS;
UInt16 size = sizeof(UInt32);
//This will return the IP address of the gateway server that
//was assigned to the device...
Err err = NetLibSettingGet(netLibRef,
netIFSettingServerIPAddr,
&serverPPPAddress,
&size);
//This will return the IP address that was assigned to the
//device itself...
err = NetLibSettingGet(netLibRef,
netIFSettingActualIPAddr,
&dhcpPPPAddress,
&size);
//This will return the subnet mask that was assigned to the
//device itself...
err = NetLibSettingGet(netLibRef,
netIFSettingSubnetMask,
&subnetMask,
&size);
//This will return the IP address of the primary DNS server
//that was assigned to the device...
err = NetLibSettingGet(netLibRef,
netSettingRTPrimaryDNS,
&primaryDNS,
&size);
//This will return the IP address of the secondary DNS
//server that was assigned to the device...
err = NetLibSettingGet(netLibRef,
netSettingRTSecondaryDNS,
&secondaryDNS,
&size);
As usual, this code is presented as-is, but if you find it helpful, I always like to know.
-Jon
|