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/^[ \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/&nbsp;//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/&nbsp;//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/&nbsp;//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/&nbsp;//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>