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
_______________________________________________
Perl-Win32-Admin mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs