Board logo

标题: [网络连接] [已解决]请问如何实现通过网页查询IP提取所在的IP段? [打印本页]

作者: super1129    时间: 2011-9-27 14:37     标题: [已解决]请问如何实现通过网页查询IP提取所在的IP段?

本帖最后由 super1129 于 2011-9-29 08:39 编辑

请问大家:
我有一个1.txt文本,里面是IP列表:
134.148.132.225
193.188.135.22
………………

我想通过调用浏览器查询所在IP段,如下所示:
http://whois.cooleasy.com/134.148.132.225
网页会出来NetRange: 134.148.0.0 - 134.148.255.255
提取134.148.0.0 - 134.148.255.255 保存即可。


该如何编程呢? (包含从txt导入,并导出至txt) O(∩_∩)O谢谢

据说curl, wget, VBS都能解决,这三者效率相比如何?哪个更好?

如果IP列表比较大的话,是不是受网络的影响?

http://www.bathome.net/thread-5867-1-1.html 中说
因数百个链接的页面用浏览器打开太慢,从而想到用 wget 下载页面到时本地再从文本中提取出链接地址

是不是可以借鉴?
可惜偶没看懂,请大家帮忙啊!
作者: ArdentMan    时间: 2011-9-28 23:19

另存为.vbs,代码懒得优化了
  1. Dim FSO, IpList
  2. Set FSO = CreateObject("Scripting.FileSystemObject")
  3. IpList = Split(FSO.OpenTextFile("1.txt").ReadAll(), vbCrLf)
  4. For Each str In IpList
  5.   If str <> vbNullString Then
  6.     GetWeb "http://whois.cooleasy.com/" & str
  7.     GetTxt
  8.   End If
  9. Next
  10. FSO.DeleteFile "temp.txt"
  11. Set FSO = Nothing
  12. CreateObject("Wscript.Shell").Run "IpList.txt"
  13. Function GetWeb(Url)
  14.   Dim XMLHTTP, STREAM
  15.   Set XMLHTTP = CreateObject("MsXml2.XmlHttp")
  16.   XMLHTTP.open "Get", Url, False
  17.   XMLHTTP.send()
  18.   Do Until XMLHTTP.readyState = 4 : WScript.Sleep 200 : Loop
  19.   Set STREAM = CreateObject("Adodb.Stream")
  20.   STREAM.Mode = 3
  21.   STREAM.Type = 1
  22.   STREAM.Open()
  23.   STREAM.Write(XMLHTTP.responseBody)
  24.   STREAM.SaveToFile "temp.txt", 2
  25.   STREAM.Close
  26.   Set STREAM = Nothing
  27.   XMLHTTP.abort
  28.   Set XMLHTTP = Nothing
  29. End Function
  30. Function GetTxt
  31.   Dim vbStr, Arr
  32.   vbStr = Replace(FSO.OpenTextFile("temp.txt").ReadAll(), vbLf, vbCrLf)
  33.   Arr = Split(vbStr, vbCrLf)
  34.   For Each str In Arr
  35.     If InStr(str, "NetRange:") Then FSO.OpenTextFile("IpList.txt", 8, True).Write Left(GetUrl(str), Len(GetUrl(str))-8) & vbCrLf
  36.   Next
  37. End Function
  38. Function GetUrl(Str)
  39.   Dim RegEx
  40.   Set RegEx = New RegExp
  41.   RegEx.Global = True
  42.   RegEx.IgnoreCase = True
  43.   RegEx.Pattern = ".*?>([^<>]+)<.*?"
  44.   GetUrl = RegEx.Replace(Str, "$1")
  45. End Function
复制代码

作者: super1129    时间: 2011-9-29 08:41

回复 2# ArdentMan


非常感谢!
    请问下保存后,小红伞提示有病毒 [DETECTION] Contains recognition pattern of the HTML/ADODB.Exploit.Gen HTML script virus

请问是正常的吗?
作者: ArdentMan    时间: 2011-9-29 09:03

回复 3# super1129
你也看得出上面的VBS代码是不可能存在病毒和木马行为滴~~~
作者: hfg1977    时间: 2011-9-29 10:38

  1. curl -s http://whois.cooleasy.com/134.148.132.225|sed -n "/NetRange/ {s/\(<[^>]*>\)//g;p}"
复制代码

作者: super1129    时间: 2011-9-29 14:42

回复 4# ArdentMan


    应该是误报,O(∩_∩)O谢谢




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2