知识大全 判断IP的来源是电信还是网通

Posted 电信

篇首语:我们要像海绵一样吸收有用的知识。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 判断IP的来源是电信还是网通相关的知识,希望对你有一定的参考价值。

判断IP的来源是电信还是网通  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  不多废话 直接开始说一种超快的算法吧 既然要极快 莫过于o( )的复杂度 所以开辟一巨大的缓冲区 用经典的空间换时间 通过查表一步即可判定 那如何定义表的大小 还有key?先从cnc txt这个文件看起

  这个文件是中国网通的路由表 仔细观察下 不难发现掩码位数最高不超过 (即 ) 事实上 位的掩码是非常至少 毕竟一个网通的网段里只划分了 个ip 已是相当的少了 既然掩码位数最多只有 所以ip的最后一位可以忽略不计 而ip的前 位共有 ^ (= m)的组合 所以将ip的前 位作为key m的表长度 正好定义出ip对应网段的表 可以形象如下表示:

   / => table[ ] = true

   / => table[ ] = true

  table[ ] = true

  

  table[ ] = true

  检测的时候取ip前 位 检测表中对应是否为true即可判断出此ip的类型 事实上 本例中ip只有电信和网通两种状态(非网通网段都当作电信) 因此只需 bit即可保存每个记录 这时表占用的内存只需 m/ = m 下面就用asp教程来实现这功能

  首先将路由表转化成一个 m大小的缓存表 考虑到asp的运行速度 这里事先用c程序直接处理 然后保存为一个 m的二进制文件 asp通过adbdo stream读取数据流 并缓存在appliction集合中 所谓的数据流其实也就是个byte()变量 可以通过midb ascb这类二进制函数来处理

  初始化函数:

  sub init()

  if lenb(application("cnc")) then

  exit sub

  end if

  with server createobject("adodb stream")

   type =

   open

   loadfromfile server mappath("cnc dat")

  application("cnc") = read

   close

  end with

  end sub

  通过appliction集合的缓存 就不必每次都读取文件 m大小的内存也是可以接受的 接着就是分析ip地址 将其前 位转换成一个数字 因为这里每个记录是按位(bit)保存的 所以还要整除 来对应到byte()的位置 最后通过mod运算对应到具体字节的具体bit上 听着有些复杂 不过实现起来确是相当的简单:

  function ipiscnc(ip)

  dim arr val

  dim c

  arr = split(ip " ")

  val = clng(arr( )) * + clng(arr( )) * + clng(arr( ))

  c = ascb(midb(application("cnc") val + ))

  ipiscnc = _

  (c and ^(val mod )) <>

  end function

  ipiscnc(ip) 返回ip地址是否为网通

  到此关键的两个函数就大功告成了 接着测试:

  sub main()

  on error resume next

  init()

  if err then

  response write "系统错误: " & err description

  exit sub

  end if

  dim ip

  ip = request servervariables("remote_addr")

  if ipiscnc(ip) then

  response write ip & "属于网通ip"

  else

  response write ip & "属于电信ip"

  end if

  end sub

  main()

  考虑到init函数需要文件的读取 所以添加了错误捕捉 不过通常情况下ipiscnc是不会错误的 因为remote_addr返回的必然是个正确格式的ip

cha138/Article/program/net/201311/14029

相关参考

知识大全 电信的itv机顶盒怎么设置账号

电信的itv机顶盒怎么设置账号1.设置路由的无线密码还是路由的登录密码看一下路由器背面的ip地址(一般是都是192.168.1.1或192.168.0.1)和登陆地账号密码,打开浏览器输入那个ip添入

知识大全 电信的固定电话能绑定联通的固话IP卡吗

电信的固定电话能绑定联通的固话IP卡吗?如果能,费用怎么算?  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 中国移动宽带怎么解决延迟

中国移动宽带怎么解决延迟因为网络游戏只区分电信游戏大区和网通游戏大区,所以如果移动宽带去登录电信或网通游戏大区,会导致延迟较高,但可以通过以下方法解决:1、在百度中搜索加速器,可以看到很多免费或收费的

知识大全 急

游戏玩不了怎么回事!急!您好LZ,梦幻西游进不去,这和您家网络有关系,比如您可能是网通,东莞是电信的,或者相反,就会很难进入。CF进不去有网络原因也有您电脑配置的原因。我家电脑也是这样,玩CF的时候因

知识大全 你们用的是移动,联通,还是电信

你们用的是移动,联通,还是电信?好纠结啊?到底哪个好用啊!除了联通另外两家都可以移动联通电信到底该用哪个好?很纠结综合属性还是移动的好,电信和联通就那么几种套餐,移动的多的是纠结到是用移动卡好还是联通

知识大全 PHP用CURL伪造IP和来源

PHP用CURL伪造IP和来源  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  php代码  $c

知识大全 固定ip那么贵。租用虚拟主机的服务商卖个独立ip的空间怎么那么便宜

固定ip那么贵。租用虚拟主机的服务商卖个独立ip的空间怎么那么便宜固定的IP贵是你直接向电信或者联通拉的一个专线,上面附带一个IP,费用很贵,主要是专线的费用比较贵。而虚拟主机的服务商他们所服务的场所

知识大全 静态arp ip和MAC系结之后 修改别的IP还是能上网

静态arpip和MAC系结之后修改别的IP还是能上网?  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 怎样有效的防止别人用p2p限制网速,轻的网页打不开,严重时候直接断网,电信100兆的,重置路由器

怎样有效的防止别人用p2p限制网速,轻的网页打不开,严重时候直接断网,电信100兆的,重置路由器首先你知道路由器管理员的密码。进路由器后开始固定IP,然后在客户端里面限定不同IP的网速。就这样,不同的

知识大全 电信手机连接电脑上网是耗流量还是用其他的

电信手机连接电脑上网是耗流量还是用其他的?PS:我的套餐有1800分钟免费WLAN,不知道是用这个不?  以下文字资料是由(本站网www.cha138.com)小编为大家