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

Reply via email to