Board logo

标题: IP地址地理位置/手机号码归属地查询(网络版) [打印本页]

作者: vkill     时间: 2007-6-5 20:46    标题: IP地址地理位置/手机号码归属地查询(网络版)
手机号码归属地查询批处理单机版

用的是ip138的数据库

需要外部命令 curl 、sed



@echo off
title IP地址地理位置^/手机号码归属地查询 by:vkill
::需要外部工具 curl & sed ,下载:http://www.vkill.net/tools.html
:start_
cls&set v=&set a=
set/p=你输入你要查询的IP地址或手机号码:<nul & set/p "v="
if not defined v goto :start_
echo 正在查询,请稍候......
echo.
echo "%v%"|find ".">nul 2>nul &&(
echo 您查询的IP:%v%
for /f "tokens=*" %%? in ('curl -s -d "ip=%v%&action=ip" http://ip138.com/ips8.asp^|sed "/本站主数据:/!d;s/<li>/\n/g;s/<*>//g;s/^*//g"') do (echo %%?)
)||(
echo 您查询的手机号码段:%v%
for /f "tokens=*" %%? in ('curl -s -d "mobile=%v%&action=mobile" http://www.ip138.com:8080/search.asp^|sed "s/&nbsp;//g"^|sed -r -n "/卡号归属地|卡类型/{n;p}"^|sed "s/<*>//g;s/^*//g"') do (
if not defined a (
echo 卡号归属地:%%?
set a=a) else (echo 卡 类 型:%%?)
)
)
echo.
set/p=任意键继续......<nul&pause>nul&goto :start_


Last edited by vkill on 2007-6-6 at 09:03 PM ]

作者: coolx     时间: 2007-6-5 21:44
刚来的新手,谢谢楼主分享。学习中~

作者: utem999     时间: 2007-6-6 08:11
Originally posted by vkill at 2007-6-5 20:46:
用的是ip138的数据库

需要外部命令 curl 、sed



@echo off
title 手机号码归属地专业查询 by:vkill
set "mobile=13993678***"
set/p=你输入你要查询 ...


当需要外部命令时
请楼主一并提供
谢谢

作者: Kinglion     时间: 2007-6-6 11:27    标题: CURL详解

作者: Kinglion     时间: 2007-6-6 11:28    标题: CURL下载

作者: Kinglion     时间: 2007-6-6 11:30    标题: SED下载

作者: vkill     时间: 2007-6-6 20:00
Originally posted by utem999 at 2007-6-6 08:11:


当需要外部命令时
请楼主一并提供
谢谢


http://www.vkill.net/tools.html,我自己的站

作者: vkill     时间: 2007-6-6 21:03
顺便加个查ip地址地理位置的

作者: 175891641     时间: 2007-8-23 23:39
很有用
先谢了

作者: clgt     时间: 2007-8-23 23:54
学习了

作者: bray     时间: 2008-8-25 19:29
如果我想批量查询并将结果保存应该怎么操作?
我的想法是将需要查询的号码保存在文本文档
依次读取该文档的每一行 然后进行查询
折腾了一下午 还是没有搞出来
请各位高人指点,谢谢!

作者: HAT     时间: 2008-8-25 19:43    标题: Re 11楼
把你折腾出来的代码贴出来看看,这样别人才能为你指出问题所在:)

作者: dato     时间: 2008-8-26 02:21
建议使用topfisher,一个脚本方式的网页数据采集软件,它里面就有个针对这个网站的实例。

topfisher是我用过的最最灵活的采集软件,它有自己的函数库,相对其它GUI界面软件的好处是可以深层链接跳转,其它的GUI界面的采集软件只能采集有顺序的页面。

当然有个缺点不支持ajex的网站,曾经见过有个GUI界面的软件声称支持ajex页面,可惜没注册的版本限制太多了。

不过用topfisher已经能实现我所要的结果,是个很不错的采集软件建议大家试试。

作者: bray     时间: 2008-8-26 10:39
Re 12楼

@echo off
:start_

for /f "tokens=*" %%i in (str.txt) do (
set v=%i%
echo %%i ,%v%
cls &set a=
echo %v% >>查询结果.txt
for /f "tokens=*" %%? in ('curl -s -d "mobile=%v%&action=mobile" http://www.ip138.com:8080/search.asp^|sed "s/&nbsp;//g"^|sed -r -n "/卡号归属地|卡类型/{n;p}"^|sed "s/<*>//g;s/^*//g"') do (
if not defined a (
echo 卡号归属地:%%?
echo %%? >>查询结果.txt
set a=a) else (echo 卡 类 型:%%?
echo %%? >>查询结果.txt)
)
)
pause
---------------------------------
以上是我按照个人想法写的,
str.txt的内容为以下格式:
13012345678
13112345678
13212345678
......

我发现echo %%i ,%v% 打印出来v是空白的,
echo %v% >>查询结果.txt 这一步执行的结果是“ECHO 处于关闭状态。”

新手入门,望各位高人指教
多谢!

Last edited by bray on 2008-8-26 at 10:43 AM ]

作者: qvb3d     时间: 2008-8-26 11:24    标题: en
hao de

作者: bray     时间: 2008-8-26 14:55
Originally posted by bray at 2008-8-26 10:39 AM:
Re 12楼

@echo off
:start_

for /f "tokens=*" %%i in (str.txt) do (
set v=%i%
echo %%i ,%v%
cls &set a=
echo %v% >>查询结果.txt
for /f "tokens=* ...



我将
echo %v% >>查询结果.txt
for /f "tokens=*" %%? in ('curl -s -d "mobile=%v%&action=mobile" http://www.ip138.com:8080/search.asp^|sed "s/&nbsp;//g"^|sed -r -n "/卡号归属地|卡类型/{n;p}"^|sed "s/<*>//g;s/^*//g"')

修改成了

echo !v! >>查询结果.txt
for /f "tokens=*" %%? in ('curl -s -d "mobile=!v%!action=mobile" http://www.ip138.com:8080/search.asp^|sed "s/&nbsp;//g"^|sed -r -n "/卡号归属地|卡类型/{n;p}"^|sed "s/<*>//g;s/^*//g"')

可以实现查询了
可输出到文本的记过是这样的:

1300000
<TDwidth=*align="center"class=tdc2>北京北京</TD>
<TDwidth=*align="center"class=tdc2>联通130卡</TD>
1300001
<TDwidth=*align="center"class=tdc2>江苏常州</TD>
<TDwidth=*align="center"class=tdc2>联通如意通卡</TD>