锁定老帖子 主题:IPParse: IP 地址查询
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-03-09
找个在线的用用好了 IP地址查询
|
|
返回顶楼 | |
发表时间:2009-03-10
这个东西真是好用,十分感谢
|
|
返回顶楼 | |
发表时间:2009-03-18
如果文件操作频繁,操作系统应该会自动加载文件到内存的,而且会根据内存大小,操作系统会自动卸载文件的吧?
那个ruby解纯真数据库的代码,好像有BUG,哪位大大教一下怎么改! |
|
返回顶楼 | |
发表时间:2009-03-24
你这个有什么优势?
用过纯真ip库,好用,有很详细的格式说明,一次加载到内存挺方便的 |
|
返回顶楼 | |
发表时间:2009-08-21
引用 有效代码30多行,使用了PHPWind的IP数据库(稍稍改了改格式,源码里提供了工具)
工具在哪里? |
|
返回顶楼 | |
发表时间: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 美国 |
|
返回顶楼 | |
发表时间:2009-08-22
convert_ip_format.rb,
不是BUG,指特殊或其它文件中不存在的IP |
|
返回顶楼 | |
发表时间: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提供的代码还是自己写的?再做下性能测试。。 |
|
返回顶楼 | |