C#编程之C# 随机获取国内IP
小标 2018-10-22 来源 : 阅读 1307 评论 0

摘要:本文主要向大家介绍了C#编程之C# 随机获取国内IP,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。

本文主要向大家介绍了C#编程之C# 随机获取国内IP,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。

调用getRandomIp()方法即可Framework3.5 +使用LINQ

public string getRandomIp()
        {     /*
     int[][]
     这个叫交错数组,白话文就是数组的数组.
    初始化的方法:
     int[][] numbers = new int[][] { new int[] {2,3,4}, new int[] {5,6,7,8,9} };
当然也可以使用{}初始化器初始化
             int[][] numbers = { new int[] {2,3,4}, 
                            new int[] {5,6,7,8,9} 
                          };
     */
         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;
        }
 
        /*
         * 将十进制转换成ip地址
        */
        public string num2ip(int ip)
        {
            int[] b = new int[4];
            string x = "";
            //位移然后与255 做高低位转换
            b[0] = (int)((ip >> 24) & 0xff);    
            b[1] = (int)((ip >> 16) & 0xff);
            b[2] = (int)((ip >> 8) & 0xff);
            b[3] = (int)(ip & 0xff);
            x = (b[0]).ToString() + "." + (b[1]).ToString() + "." + (b[2]).ToString() + "." + (b[3]).ToString();
 
            return x;
        }

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication1
{
    class Program
    {
        static Dictionary ips = new int[][]
            {
                Enumerable.Range(607649792, 608174079 - 607649792 + 1).ToArray(),
                Enumerable.Range(1038614528, 1039007743 - 1038614528 + 1).ToArray(),
                Enumerable.Range(1783627776, 1784676351 - 1783627776 + 1).ToArray(),
                Enumerable.Range(2035023872, 2035154943 - 2035023872 + 1).ToArray(),
                Enumerable.Range(2078801920, 2079064063 - 2078801920 + 1).ToArray(),
                Enumerable.Range(-1950089216, -1948778497 + 1950089216 + 1).ToArray(),
                Enumerable.Range(-1425539072, -1425014785 + 1425539072 + 1).ToArray(),
                Enumerable.Range(-1236271104, -1235419137 + 1236271104 + 1).ToArray(),
                Enumerable.Range(-770113536, -768606209 + 770113536 + 1).ToArray(),
                Enumerable.Range(-569376768, -564133889 + 569376768 + 1).ToArray()
            }.SelectMany(x => x).Select((x, i) => new { x, i }).ToDictionary(x => x.i, x => x.x);
 
        static string IpToString(int IP)
        {
            return string.Join(".", BitConverter.GetBytes(IP).Reverse().Select(x => ((int)x).ToString()));
        }
 
        static int GenIP()
        {
            return ips[new Random(Guid.NewGuid().GetHashCode()).Next(0, ips.Count)];
        }
 
        static void Main(string[] args)
        {
            for (int i = 0; i < 10; i++)
                Console.WriteLine(IpToString(GenIP()));
        }
    }
}

加了比较不容易理解部分的注释..想弄明白的同学想必现在已经明白了吧

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C#.NET频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程