论坛首页 编程语言技术论坛

IPParse: IP 地址查询

浏览 32268 次
该帖已经被评为良好帖
作者 正文
   发表时间:2009-03-09  
找个在线的用用好了 IP地址查询
0 请登录后投票
   发表时间:2009-03-10  
这个东西真是好用,十分感谢
0 请登录后投票
   发表时间:2009-03-18  
如果文件操作频繁,操作系统应该会自动加载文件到内存的,而且会根据内存大小,操作系统会自动卸载文件的吧?

那个ruby解纯真数据库的代码,好像有BUG,哪位大大教一下怎么改!
0 请登录后投票
   发表时间:2009-03-24  
你这个有什么优势?

用过纯真ip库,好用,有很详细的格式说明,一次加载到内存挺方便的
0 请登录后投票
   发表时间:2009-08-21  
引用
有效代码30多行,使用了PHPWind的IP数据库(稍稍改了改格式,源码里提供了工具)

工具在哪里?
0 请登录后投票
   发表时间:2009-08-21  
看了你分割后的文件,其他都是ip段的第一个字段做文件名,但是有一个0.txt里面内容很乱,这个是bug吗?还是?
引用
000.000.000.000 001.051.255.255 IANA
001.052.000.000 001.052.255.255 美国
001.053.000.000 001.153.255.255 IANA
001.154.000.000 001.154.255.255 美国
001.155.000.000 002.255.255.255 IANA
003.000.000.000 004.255.255.255 美国
005.000.000.000 005.147.255.255 IANA
005.148.000.000 005.148.255.255 加拿大
005.149.000.000 005.255.255.255 IANA
006.000.000.000 009.255.255.255 美国
010.000.000.000 010.255.255.255 局域网
011.000.000.000 021.233.255.255 美国
021.234.000.000 021.234.255.255 台湾省
021.235.000.000 022.255.255.255 美国
023.000.000.000 023.031.255.255 IANA
023.032.000.000 023.032.255.255 美国
023.033.000.000 023.123.255.255 IANA
023.124.000.000 023.124.255.255 美国
023.125.000.000 023.189.255.255 IANA
023.190.000.000 023.190.255.255 美国
023.191.000.000 023.255.255.255 IANA
024.000.000.000 024.035.127.255 美国
024.035.128.000 024.037.255.255 加拿大
024.038.000.000 024.038.015.255 美国
024.038.016.000 024.038.159.255 加拿大
024.038.160.000 024.038.175.255 美国
024.038.176.000 024.038.191.255 加拿大
024.038.192.000 024.038.223.255 美国
024.038.224.000 024.038.255.255 加拿大
024.039.000.000 024.039.127.255 美国
024.039.128.000 024.039.255.255 加拿大
024.040.000.000 024.040.079.255 美国
024.040.080.000 024.040.095.255 加拿大
024.040.096.000 024.040.111.255 美国
024.040.112.000 024.040.255.255 加拿大
024.041.000.000 024.041.095.255 美国
024.041.096.000 024.043.255.255 加拿大
024.044.000.000 024.056.255.255 美国
024.057.000.000 024.057.255.255 加拿大
024.058.000.000 024.063.255.255 美国
024.064.000.000 024.072.143.255 加拿大
024.072.144.000 024.075.255.255 美国
024.076.000.000 024.087.255.255 加拿大
024.088.000.000 024.089.031.255 美国
024.089.032.000 024.089.063.255 Unknown
024.089.064.000 024.089.127.255 加拿大
024.089.128.000 024.089.191.255 美国
024.089.192.000 024.089.255.255 加拿大
024.090.000.000 024.099.255.255 美国
024.100.000.000 024.103.255.255 加拿大
024.104.000.000 024.107.255.255 美国
024.108.000.000 024.109.255.255 加拿大
024.110.000.000 024.110.255.255 美国
024.111.000.000 024.112.255.255 加拿大
024.113.000.000 024.113.191.255 美国
024.113.192.000 024.114.255.255 加拿大
024.115.000.000 024.121.255.255 美国
024.122.000.000 024.122.255.255 加拿大
024.123.000.000 024.129.223.255 美国
024.129.224.000 024.129.239.255 加拿大
024.129.240.000 024.129.255.255 Unknown
024.130.000.000 024.131.255.255 美国
024.132.000.000 024.135.255.255 荷兰
024.136.000.000 024.137.031.255 美国
024.137.032.000 024.137.047.255 加拿大
024.137.048.000 024.137.063.255 Unknown
024.137.064.000 024.137.127.255 加拿大
024.137.128.000 024.137.191.255 美国
024.137.192.000 024.137.223.255 加拿大
024.137.224.000 024.137.255.255 Unknown
024.138.000.000 024.138.079.255 加拿大
024.138.080.000 024.138.095.255 Unknown
024.138.096.000 024.138.111.255 加拿大
024.138.112.000 024.138.127.255 Unknown
024.138.128.000 024.138.191.255 加拿大
024.138.192.000 024.138.255.255 波多黎各
024.139.000.000 024.139.031.255 加拿大
024.139.032.000 024.139.063.255 Unknown
024.139.064.000 024.139.095.255 波多黎各
024.139.096.000 024.139.127.255 Unknown
024.139.128.000 024.139.223.255 波多黎各
024.139.224.000 024.139.255.255 Unknown
024.140.000.000 024.140.255.255 美国
024.141.000.000 024.141.255.255 加拿大
024.142.000.000 024.143.047.255 美国
024.143.048.000 024.143.063.255 加拿大
024.143.064.000 024.143.095.255 美国
024.143.096.000 024.143.127.255 加拿大
024.143.128.000 024.143.175.255 美国
024.143.176.000 024.143.223.255 加拿大
024.143.224.000 024.145.255.255 美国
024.146.000.000 024.146.255.255 加拿大
024.147.000.000 024.149.031.255 美国
0 请登录后投票
   发表时间:2009-08-22  
convert_ip_format.rb,

不是BUG,指特殊或其它文件中不存在的IP
0 请登录后投票
   发表时间:2009-08-24   最后修改:2009-08-24
既然纯真数据库数据比PHPwind精确,何不用纯真?按照楼主分割数据的方式和纯真数据库自带的导出txt工具,写了个分割脚本:
require 'iconv'
#编码转换
def utf8(str)
  Iconv.conv("UTF-8", "GBK", str)
end
#获取ip地址前面字段
def get_first_num(str)
  str =~ /(\d{0,3})\./ ? $1 : nil
end
#格式化多余空格
def drop_white_space(str)
  str.gsub(/\s+\b/, " ")
end
#转化成192.168.000.001的格式
def add_zero(str)
  str.gsub(/\b(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\b/) do |ip|
    ip.gsub(/(\d{1,3})/){|m| m.rjust(3,"0")}
  end
end
#分割成多个文件
File.open("QQwry.txt","r") do |file|
  file.each_line do |line|
      File.open("#{get_first_num(line)}.txt", "a") do |f|
        f.write(add_zero(utf8(drop_white_space(line))))
      end
  end
end





PS:顺便问下快客王和楼上几位说的用纯真数据库一次加载到内存是如何做的?是用的orlaa提供的代码还是自己写的?再做下性能测试。。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics