#!/usr/bin/perl ######################################################### # Scott Baker wrote this script just to see if you # really could get 100,000 IP addresses attached to one # NIC. You can!!!!!!!!! # 2005-03-30 3:50pm ######################################################### $ifconfig = "/sbin/ifconfig"; $base_ip = "10.83.1.1"; $ip_long = ip2long($base_ip); $num_of_ips = 100000; for ($i = 1; $i < $num_of_ips; $i++) { $ip_addr = long2ip($ip_long); $cmd = "$ifconfig eth0:$i $ip_addr netmask 255.0.0.0"; print "$cmd\n"; $ip_long++; } sub ip2long() { my $ip = shift; my @ip = split(/\./,$ip); #Make sure it's a valid ip if ($ip !~ /\d{1,3}\.\d{1,3}\.\d{1,3}/) { return 0; } if (scalar(@ip) != 4) { return 0; } #Perform the bit shifting to align each octet in the long correctly my $i = ($ip[0] << 24) + ($ip[1] << 16) + ($ip[2] << 8) + $ip[3]; return $i; } sub long2ip() { my $long = shift(); my (@i,$i); $i[0] = ($long & 0xff000000) >> 24; $i[1] = ($long & 0x00ff0000) >> 16; $i[2] = ($long & 0x0000ff00) >> 8; $i[3] = ($long & 0x000000ff); $i = "$i[0].$i[1].$i[2].$i[3]"; return $i; }