C# 随机获取国内IP
调用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[]{,},//36.56.0.0-36.63.255.255
new int[]{,},//61.232.0.0-61.237.255.255
new int[]{,},//106.80.0.0-106.95.255.255
new int[]{,},//121.76.0.0-121.77.255.255
new int[]{,},//123.232.0.0-123.235.255.255
new int[]{-,-},//139.196.0.0-139.215.255.255
new int[]{-,-},//171.8.0.0-171.15.255.255
new int[]{-,-},//182.80.0.0-182.92.255.255
new int[]{-,-},//210.25.0.0-210.47.255.255
new int[]{-,-}, //222.16.0.0-222.95.255.255
}; Random rdint = new Random();
int index = rdint.Next();
string ip = num2ip(range[index][] + new Random().Next(range[index][] - range[index][]));
return ip;
} /*
* 将十进制转换成ip地址
*/
public string num2ip(int ip)
{
int[] b = new int[];
string x = "";
//位移然后与255 做高低位转换
b[] = (int)((ip >> ) & 0xff);
b[] = (int)((ip >> ) & 0xff);
b[] = (int)((ip >> ) & 0xff);
b[] = (int)(ip & 0xff);
x = (b[]).ToString() + "." + (b[]).ToString() + "." + (b[]).ToString() + "." + (b[]).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<int, int> ips = new int[][]
{
Enumerable.Range(, - + ).ToArray(),
Enumerable.Range(, - + ).ToArray(),
Enumerable.Range(, - + ).ToArray(),
Enumerable.Range(, - + ).ToArray(),
Enumerable.Range(, - + ).ToArray(),
Enumerable.Range(-, - + + ).ToArray(),
Enumerable.Range(-, - + + ).ToArray(),
Enumerable.Range(-, - + + ).ToArray(),
Enumerable.Range(-, - + + ).ToArray(),
Enumerable.Range(-, - + + ).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(, ips.Count)];
} static void Main(string[] args)
{
for (int i = ; i < ; i++)
Console.WriteLine(IpToString(GenIP()));
}
}
}
加了比较不容易理解部分的注释..想弄明白的同学想必现在已经明白了吧
C# 随机获取国内IP的更多相关文章
- java 随机获取国内IP
/* * 随机生成国内IP地址 */ public static String getRandomIp(){ //ip范围 int[][] range = {{607649792,608174079} ...
- php随机生成国内ip地址
获得一个国家所有ip段,随机生成国内ip地址的缩水实现.注意: $ip_long数组中后5个值在64位系统中可能是错误的(下面代码中 $ip_long 数组的后五个值在32位系统中为负数,64位系 ...
- 随机生成国内ip
function rand_ip(){ $ip_long = array( array('607649792', '608174079'), //36.56.0.0-36.63.255.255 arr ...
- php随机生成国内IP
public function rand_ip(){ $ip_long = array( array('607649792', '608174079'), //36.56.0.0-36.63.255. ...
- Python3.x:获取代理ip以及使用
Python3.x:获取代理ip以及使用 python爬虫浏览器伪装 #导入urllib.request模块 import urllib.request #设置请求头 headers=("U ...
- 第三百四十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—通过自定义中间件全局随机更换代理IP
第三百四十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—通过自定义中间件全局随机更换代理IP 设置代理ip只需要,自定义一个中间件,重写process_request方法, request ...
- 二十七 Python分布式爬虫打造搜索引擎Scrapy精讲—通过自定义中间件全局随机更换代理IP
设置代理ip只需要,自定义一个中间件,重写process_request方法, request.meta['proxy'] = "http://185.82.203.146:1080&quo ...
- python3爬虫系列19之反爬随机 User-Agent 和 ip代理池的使用
站长资讯平台:python3爬虫系列19之随机User-Agent 和ip代理池的使用我们前面几篇讲了爬虫增速多进程,进程池的用法之类的,爬虫速度加快呢,也会带来一些坏事. 1. 前言比如随着我们爬虫 ...
- python爬虫之反爬虫(随机user-agent,获取代理ip,检测代理ip可用性)
python爬虫之反爬虫(随机user-agent,获取代理ip,检测代理ip可用性) 目录 随机User-Agent 获取代理ip 检测代理ip可用性 随机User-Agent fake_usera ...
随机推荐
- Git补充命令行操作操作
Git命令行基本操作这里有我之前整理的git基本操作,常用的操作. 本文以实际功能和实例来说明git GUI的实现原理. 单独更新特定文件 $ git checkout readme.md 删除特定文 ...
- Markdown学习(一)
先从了解开始. 1 什么是标记语言(Markup Language)? 可以参考下wiki Markup language:https://en.wikipedia.org/wiki/Markup_l ...
- 组策略分发Adobe Reader 11教程
1, 实验环境 域控:Windows Server 2012 R2 客户端:Windows 7 Adobe Reader 版本:11.0.00 2, 获取分发 Adobe Reader 的许可协议 按 ...
- C# FileStream 文件复制
方法: /// <summary> /// 文件复制 /// </summary> /// <param name="source">源文件,例 ...
- Dell 服务器阵列扩容【经验分享(转)】
看到论坛有朋友发帖询问Dell服务器的扩容,索性整理下之前做的文档,发出来和大家做个分享. 做之前给大家提醒2个注意点:①请做好数据备份,相同于HP.IBM,该扩容过程是不可逆的.②本扩容方法支持同级 ...
- PHPUnit 在phpstrom中composer项目的应用配置
在phpstorm的composer搭建的项目调试时出现这种错误时:是其配置的错误 'Cannot create phar '/data/AppStorm/DesignPatternsPHP/vend ...
- 【Android】Android6.0读取通话记录
需求:读取通话记录,然后列表显示,每条记录的数据包括姓名.号码.类型(来电.去电.未接,字体颜色分别为绿.蓝.红),然后长按条目弹出一个列表弹窗,显示[复制号码到拨号盘].[发短信].[打电话]. 先 ...
- mac下java环境变量配置
发现一个坑:最近发现有同事按照本文方式配置jdk环境变量一直不成功,后来发现他是使用了“Oh-My-Zsh”,配置文件的路径不是/etc/profile或~/.bash_profile,它有自己的配置 ...
- NHibernate 知识点整理
1.实体bool类型属性与数据库映射.如实体中有bool属性IsDelete.配置如下 <property column="IsDelete" name="IsDe ...
- jQuery源代码解析(3)—— ready载入、queue队列
ready.queue放在一块写,没有特殊的意思,仅仅是相对来说它俩可能源代码是最简单的了.ready是在dom载入完毕后.以最高速度触发,非常实用. queue是队列.比方动画的顺序触发就是通过默认 ...