Hi all. Now works with Windows! Also, I realized that it's possible to get a new DHCP lease, in which case any prior connections would be invalid, so now the function returns the default adapter IP and MAC address on the fist line, and the default router IP and MAC address on the second line. If this isn't the same between sessions, the network has changed, so reset your connection. Enjoy!
function getDefaultNetwork pMode -- leave pMode empty for just IP and MAC info. Pass "Detail" to get more info if the platform contains "WIN" then set hideConsoleWindows to true put "netsh interface ip show config" into tShellCommand put shell(tShellCommand) into tDefaultAdapter -- if pMode is detail just return these results if pMode is "Detail" then return tDefaultAdapter -- get the default adapter and Gateway IP addresses put lineOffset("IP Address:", tDefaultAdapter) into tIPAddressLine put word -1 of line tIPAddressLine of tDefaultAdapter into tLocalIPAddress put lineOffset("Default Gateway:", tDefaultAdapter) into tGWAddressLine put word -1 of line tGWAddressLine of tDefaultAdapter into tGWIPAddress -- get the default adapter and gateway MAC addresses put "ipconfig /all" into tShellCommand put shell(tShellCommand) into tConfigData put lineOffset(tLocalIPAddress, tConfigData) -3 into tLocalMACLine put word -1 of line tLocalMACLine of tConfigData into tLocalMACAddress put "arp -a" into tShellCommand put shell(tShellCommand) into tArpData put lineOffset(tGWIPAddress, tArpData) into tGWMACAddressLine put word 2 of line tGWMACAddressLine of tArpData into tGWMACAddress put tLocalIPAddress && tLocalMACAddress & cr & \ tGWIPAddress && tGWMACAddress into tCurrentAdapterInfo else -- first we need to get the default adapter put "route get default" into tShellCommand put shell(tShellCommand) into tDefaultAdapter put lineOffset("Interface: ", tDefaultAdapter) into tInterfaceLine if tInterfaceLine = 0 then return "ERROR: No default interface found!" end if -- now we need the detail of the interface put word 2 of line tInterfaceLine of tDefaultAdapter into tDefaultInterface put "ipconfig getpacket " & tDefaultInterface into tShellCommand put shell(tShellCommand) into tInterfaceDetail -- if we didn't specifically ask for the interface and router MAC addresses, return here if pMode is "Detail" then return tInterfaceDetail -- now we get the interface MAC address put lineOffset("chaddr", tInterfaceDetail) into tInterfaceMACLine put word -1 of line tInterfaceMACLine of tInterfaceDetail into tDefaultMACAddress -- and the IP address put lineOffset("yiaddr", tInterfaceDetail) into tInterfaceIPLine put word -1 of line tInterfaceIPLine of tInterfaceDetail into tDefaultIPAddress -- next we get the router IP address put lineOffset("router (ip_mult): ", tInterfaceDetail) into tRouterLine put word 3 of line tRouterLine of tInterfaceDetail into tRouterIPAddress put char 2 to -2 of tRouterIPAddress into tRouterIPAddress -- next we get the MAC address of the router interface put "arp " & tRouterIPAddress into tShellCommand put shell(tShellCommand) into tArpReply put word 4 of tArpReply into tRouterMACAddress -- finally we return the MAC addresses of the default interface and the router interface put tDefaultIPAddress && tDefaultMACAddress & cr & \ tRouterIPAddress && tRouterMACAddress into tCurrentAdapterInfo end if return tCurrentAdapterInfo end getDefaultNetwork _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode