Someone out there should be able to give you a good example using WMI, but
you might not have WMI if you are running NT4.

-----Original Message-----
From: Guess Who [mailto:[EMAIL PROTECTED]]
Sent: Monday, April 22, 2002 2:47 PM
To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
Subject: RE: Gateway Address?


Very much appreciated but....does anyone know how to do this via a Win32 
call?  I'd rather not read the registry.

Thanks,

Ron


>From: Timothy Johnson <[EMAIL PROTECTED]>
>To: "'Guess Who'" <[EMAIL PROTECTED]>,        
>[EMAIL PROTECTED]
>Subject: RE: Gateway Address?
>Date: Fri, 19 Apr 2002 16:08:08 -0700
>
>
>Here's a snippet from a program I wrote a while back.  It should give you 
>an
>idea of where to get the info if you have access to the registry.
>
>sub getIPInfo{
>       ####  WINDOWS 2000  ####
>
>if($Registry->{"//$client/HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows
>NT/CurrentVersion/CurrentVersion"} eq "5.0"){
>               $adapterRoot =
>$Registry->{"//$client/HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows
>NT/CurrentVersion/NetworkCards/"};
>               $ipRoot =
>$Registry->{"//$client/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services
/
>Tcpip/Parameters/Interfaces/"};
>               @adapterKeys = keys %{$adapterRoot};
>               foreach $key(@adapterKeys){
>                       $name = $adapterRoot->{$key}->{'ServiceName'};
>                       $service = $adapterRoot->{$key}->{'ServiceName'};
>                       $nics->{$name}{'Description'} =
>$adapterRoot->{$key}->{'Description'};
>                       $nics->{$name}{'ServiceName'} =
>$adapterRoot->{$key}->{'ServiceName'};
>                       $nics->{$name}{'Domain'} =
>$ipRoot->{"$servicename/Domain"};
>                       $nics->{$name}{'DNS'} =
>$ipRoot->{"$servicename/NameServer"};
>                       if($ipRoot->{"$service/EnableDHCP"} eq
>"0x00000000"){
>                               $nics->{$name}{'IPAddress'} =
>$ipRoot->{"$service/IPAddress"};
>                               $nics->{$name}{'Subnet'} =
>$ipRoot->{"$service/SubnetMask"};
>                               $nics->{$name}{'DHCPEnabled'} = "No";
>                               $nics->{$name}{'Gateway'} =
>$ipRoot->{"$service/DefaultGateway"};
>                       }elsif($ipRoot->{"$service/EnableDHCP"} eq
>"0x00000001"){
>                               $nics->{$name}{'DHCPServer'} =
>$ipRoot->{"$service/DhcpServer"};
>                               $nics->{$name}{'Subnet'} =
>$ipRoot->{"$service/DhcpSubnetMask"};
>                               $nics->{$name}{'IPAddress'} =
>$ipRoot->{"$service/DhcpIPAddress"};
>                               $nics->{$name}{'DHCPEnabled'} = "Yes";
>                               $nics->{$name}{'Gateway'} =
>$ipRoot->{"$service/DhcpDefaultGateway"};
>                       }
>               }
>       ####  WINDOWS NT  ####
>
>}elsif($Registry->{"//$client/HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows
>NT/CurrentVersion/CurrentVersion"} eq "4.0"){
>               $adapterRoot =
>$Registry->{"//$client/HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows
>NT/CurrentVersion/NetworkCards/"};
>               foreach $key(keys %{$adapterRoot}){
>                       $name = $adapterRoot->{$key}->{'ServiceName'};
>                       $service = $adapterRoot->{$key}->{'ServiceName'};
>                       $nics->{$name}{'Description'} =
>$adapterRoot->{$key}->{'Description'};
>                       $nics->{$name}{'ServiceName'} =
>$adapterRoot->{$key}->{'ServiceName'};
>                       $ipRoot =
>$Registry->{"//$client/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services
/
>$service/Parameters/Tcpip/"};
>                       if($ipRoot->{"EnableDHCP"} eq "0x00000000"){
>                               $nics->{$name}{'IPAddress'} =
>$ipRoot->{"IPAddress"};
>                               $nics->{$name}{'Subnet'} =
>$ipRoot->{"SubnetMask"};
>                               $nics->{$name}{'DHCPEnabled'} = "No";
>                               $nics->{$name}{'Gateway'} =
>$ipRoot->{"DefaultGateway"};
>                       }elsif($ipRoot->{"EnableDHCP"} eq "0x00000001"){
>                               $nics->{$name}{'DHCPServer'} =
>$ipRoot->{"DhcpServer"};
>                               $nics->{$name}{'Subnet'} =
>$ipRoot->{"DhcpSubnetMask"};
>                               $nics->{$name}{'IPAddress'} =
>$ipRoot->{"DhcpIPAddress"};
>                               $nics->{$name}{'DHCPEnabled'} = "Yes";
>                               $nics->{$name}{'Gateway'} =
>$ipRoot->{"DhcpDefaultGateway"};
>                       }else{
>                               print "        DHCP status unknown on
>$name!\n";
>                       }
>               }
>       }
>}
>
>
>P.S.  I know, it's ugly, but it works, and I just haven't had the heart to
>sit down and fix it.
>
>-----Original Message-----
>From: Guess Who [mailto:[EMAIL PROTECTED]]
>Sent: Friday, April 19, 2002 4:09 PM
>To: [EMAIL PROTECTED]
>Subject: Gateway Address?
>
>
>Hello!
>
>Does anyone have code to extract the gateway from a Win32 host?  I use the
>following to get the IP info:
>
>               $machine = Win32::NodeName;
>               $addr = (gethostbyname($machine))[4];
>               $ip = join(".",unpack("C4", $addr));
>
>Thanks mucho!
>
>Pablo Suave
>
>
>_________________________________________________________________
>Send and receive Hotmail on your mobile device: http://mobile.msn.com
>
>_______________________________________________
>Perl-Win32-Admin mailing list
>[EMAIL PROTECTED]
>To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


_________________________________________________________________
Chat with friends online, try MSN Messenger: http://messenger.msn.com
_______________________________________________
Perl-Win32-Admin mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to