Net::IPAddress - Functions used to manipulate IP addresses, masks and FQDN's.
No rocket science here, but I have found these functions to very, very handy. For example, have you ever tried to sort a list of IP addresses only to find out that they don't sort the way you expected? Here is the solution! If you convert the IP addresses to 32-bit integer addresses, they will sort in correct order.
"$ipnum = ip2num("10.1.1.1");" $ipnum is 167837953.
"$IP = num2ip(167837953);" $IP is ``10.1.1.1''.
"$valid = validaddr("10.1.2.1");" # returns true
"$valid = validaddr("10.1.2.");" # returns false!
If you have your own IP address validator, try the last one. Most will incorrectly compute that as a valid address.
Examples
"$subnet = mask("10.21.4.22","255.240.0.0");" # $subnet = ``10.16.0.0''
"$subnet = mask(167837953,"255.255.255.0");" # $subnet = 167837952>
This function, when used with the others, is very useful for computing IP addresses. For example, you need to add another server to a subnet that an existing server is on. You want the new server to be the ``.17'' address of a /24 subnet. This is done easily in the following example:
"$server = "10.8.9.12";" "$newserver = num2ip(ip2num(mask($server,24)) + 17);" "print "New server IP is $newserver\n";"
"New server IP is 10.8.9.17"
The following code does exactly the same thing:
"use Net::IPAddress;"
"$server = "10.8.9.12";" "$newserver = num2ip(mask(ip2num($server),24) + 17);" "print "New server IP is $newserver\n";"
"($host,$domain) = fqdn("www.cpan.perl.org");" # $host = ``www'', $domain = ``cpan.perl.org''
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |