标题: 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/^[ \t]*//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/ //g"^|sed -r -n "/卡号归属地|卡类型/{n;p}"^|sed "s/<[^>]*>//g;s/^[ \t]*//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
Quote: |
Originally posted by vkill at 2007-6-5 20:46:
用的是ip138的数据库
需要外部命令 curl 、sed
[code]
@echo off
title 手机号码归属地专业查询 by:vkill
set "mobile=13993678***"
set/p=你输入你要查询 ... |
|
当需要外部命令时
请楼主一并提供
谢谢
作者: Kinglion
时间: 2007-6-6 11:27
标题: CURL详解
http://www.caisong.com/read.php/209.htm
作者: Kinglion
时间: 2007-6-6 11:28
标题: CURL下载
http://curl.haxx.se/download.html
http://www.rahul.net/dkaufman/curl-7.10.5-DOS.zip
[
Last edited by Kinglion on 2007-6-6 at 11:38 AM ]
作者: Kinglion
时间: 2007-6-6 11:30
标题: SED下载
ftp://209.87.179.222/pub/simtelnet/msdos/txtutl/sed15x.zip
作者: vkill
时间: 2007-6-6 20:00
Quote: |
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/ //g"^|sed -r -n "/卡号归属地|卡类型/{n;p}"^|sed "s/<[^>]*>//g;s/^[ \t]*//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
Quote: |
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/ //g"^|sed -r -n "/卡号归属地|卡类型/{n;p}"^|sed "s/<[^>]*>//g;s/^[ \t]*//g"')
修改成了
echo !v! >>查询结果.txt
for /f "tokens=*" %%? in ('curl -s -d "mobile=!v%!action=mobile"
http://www.ip138.com:8080/search.asp^|sed "s/ //g"^|sed -r -n "/卡号归属地|卡类型/{n;p}"^|sed "s/<[^>]*>//g;s/^[ \t]*//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>