![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-05 17:02 |
共 48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [原创]批量IP地理位置查询器 |
| 可打印版本 1,409 / 1 |
| 第1楼 175891641 | 发表于 2007-09-03 18:25 |
| 初级用户 发帖 30 积分 82 | |
|
[原创]批量IP地理位置查询器 花了10个小时编的,之前vkill也写过一个ip查询位置的脚本,但要安装curl(CMD下浏览器) 和sed
加上p处理差不多有1MB大,还不能实现批量,更糟的输入我ip出来的是乱码,不知哪里设错了,本来想用ip138的数据,但发现它的cookies是半小时更新一次 而且每查一个ip至少要花1s时间,所以用http://emuch.net/ip.php,准确度跟ip138相当, 原理:用nc向服务器发送带有ip的数据包,然后对返回数据进行过滤,(ps:nc是一款黑客必备的工具。功能非常强大,但可能被瑞星认为是危险软件,所以如报警先关闭杀软) 这里有个瓶颈是nc 发送数据很慢,差不多要6s,也就是说查询单个ip速度至少要6s,不知道要加哪些参数可以解决这个问题. ########ip地理位置批量查询器(须下载nc.exe)##13:30 2007-9-3 ########通过nc对http://emuch.net/ip.php提交数据,接受返回数据并整理######## 速度参考:由于nc发送数据要占用6s左右的时间,查询单个IP约8s,查询50个ip约25s if not exist ip.txt pause 找不到ip文件 请以每行一个ip的形式保存在ip.txt中,并不要带多余空格 rem 读取ip列表 set sum=35 for /F "tokens=1 delims=" %%a in ('type ip.txt') do set str=%%a&( rem 对每一个%%a的字符数进行累加 call :ipcheck ) setlocal enabledelayedexpansion rem 使所有ip列于同一行,并在每个ip之间加入%%i%%0D%%0A%%0D%%0A字符串, for /f %%i in (ip.txt) do set str=!str!%%i%%0D%%0A%%0D%%0A ***********************************生成发送给网站的数据包 主要是2个变量Content-Length 与iptext************* echo POST /ip.php HTTP/1.1>>send.txt echo Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*>>send.txt echo Referer: http://emuch.net/ip.php>>send.txt echo Accept-Language: zh-cn>>send.txt echo Content-Type: application/x-www-form-urlencoded>>send.txt echo Accept-Encoding: gzip, deflate>>send.txt echo User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)>>send.txt echo Host: emuch.net>>send.txt echo Content-Length: %sum%>>send.txt echo Connection: Keep-Alive>>send.txt echo Cache-Control: no-cache>>send.txt echo.>>send.txt echo iptext^=%str%^&ok^=%%B5%%D8%%D6%%B7%%B6%%A8%%CE%%BB>>send.txt rem 发送代有ip列表的数据包给服务器 nc.exe -v emuch.net 80 <send.txt >>recv.txt *********文本整理************************* del 地理位置.txt rem 去除返回数据的前51行 for /f "skip=51 tokens=1* delims=" %%a in ('type recv.txt') do echo %%a%%b>>地理位置1.txt rem 去处尾部不含有ip的行 find "#" 地理位置1.txt >地理位置2.txt rem 过滤第一行的特殊字符并追加在文本末尾 for /f "skip=2 tokens=1* delims=>" %%a in ('type 地理位置2.txt') do @echo.%%b>>地理位置2.txt rem 去除前3行 for /f "skip=3 tokens=1* delims=" %%a in ('type 地理位置2.txt') do @echo.%%a>>地理位置.txt del 地理位置2.txt del 地理位置1.txt del send.txt del recv.txt exit ************* 以下对输入ip字符进行统计,公式为sum=ip总字符数+ip个数*12+35。参考pengfei的一篇文章******* :ipcheck echo %str% set ippress=%str% set num=0 set "str=%str:"= %" :next if not "%str%"=="" ( set /a num+=1 set "str=%str:~1%" goto next ) set /a num=%num%+12 set /a sum=sum+%num% rem call命令中断,返回数据发送程序。 goto :eof 测试用ip ip.txt 60.174.132.95 60.174.132.126 60.174.135.157 60.174.139.26 60.174.139.26 124.78.117.184 219.130.198.61 220.162.214.9 222.185.197.50 220.162.224.9 60.174.132.95 60.174.132.126 60.174.132.95 62.174.132.126 61.174.135.157 70.174.139.26 60.174.139.26 125.78.117.184 219.130.198.61 220.162.214.9 222.185.197.50 220.162.224.9 60.174.132.95 63.174.132.126 nc下载:http://soft.hackbase.com/view/dianxin.asp?id=Netcat0621.zip&hackbase=66397oe12244843b80b1fa67b67247af1a754e [ Last edited by 175891641 on 2007-9-3 at 06:39 PM ] |
|
| 第2楼 vkill | 发表于 2007-09-03 21:27 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
实现批量: 这个只是方法的问题,怎么可以说不可以实现那?
值得攒的是用 nc 后处理返回数据这个思路还是很好的,我在测试p-mailsend的时候也这样用过 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |