C# 随机生成国内IP地址算法

获得一个国家所有ip段,随机生成国内ip地址的缩水实现。
所有ip地址网段下载
http://www.ipaddresslocation.org/ip_ranges/get_ranges.php
缩水随机生成国内ip地址
总共有1600多个网段,只取了其中10个确定是国内的网段
使用了2个方法
 
算法是从某PHP算法中改写过来的,如果发现有问题,请留言
public static String GetRandomIP()
{
     //ip范围
     int[][] range = {new int[]{607649792,608174079},//36.56.0.0-36.63.255.255
                new int[]{1038614528,1039007743},//61.232.0.0-61.237.255.255
                new int[]{1783627776,1784676351},//106.80.0.0-106.95.255.255
                new int[]{2035023872,2035154943},//121.76.0.0-121.77.255.255
                new int[]{2078801920,2079064063},//123.232.0.0-123.235.255.255
                new int[]{-1950089216,-1948778497},//139.196.0.0-139.215.255.255
                new int[]{-1425539072,-1425014785},//171.8.0.0-171.15.255.255
                new int[]{-1236271104,-1235419137},//182.80.0.0-182.92.255.255
                new int[]{-770113536,-768606209},//210.25.0.0-210.47.255.255
                new int[]{-569376768,-564133889}, //222.16.0.0-222.95.255.255
      };

      Random rdint = new Random();
      int index = rdint.Next(10);
      String ip = Num2IP(range[index][0] + new Random().Next(range[index][1] - range[index][0]));
      return ip;
}

private static String Num2IP(int ip)
{
      int[] b = new int[4];
      String x = "";

      b[0] = (int)((ip >> 24) & 0xff);
      b[1] = (int)((ip >> 16) & 0xff);
      b[2] = (int)((ip >> 8) & 0xff);
      b[3] = (int)(ip & 0xff);
      x = Convert.ToString(b[0]) + "." + Convert.ToString(b[1]) + "." + Convert.ToString(b[2]) + "." + Convert.ToString(b[3]);
      return x;
}

评论 (0) 分享 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址