找回密码
 加入
搜索
查看: 2580|回复: 9

如何从ip判断可能存在的域名?

[复制链接]
发表于 2009-6-10 23:11:32 | 显示全部楼层 |阅读模式
公司的软路由可以把网络的访问记录以日志的形式导出,但现在的问题是有些访问软路由会自动记录为域名。但有些就是ip。这些ip有些可以直接敲在ie的地址栏上引导到站点。有些则不能。我的问题就有没有什么办法能分析这些ip把这些ip可能能连接到的域名提取出来?在深一步有没有什么办法能分析这些域名的含义?
发表于 2009-6-10 23:17:50 | 显示全部楼层

评分

参与人数 1金钱 +5 贡献 +1 收起 理由
ac5474012 + 5 + 1 多谢提供,我先看看。

查看全部评分

发表于 2009-6-11 00:58:53 | 显示全部楼层
不明白...留个名
发表于 2009-6-11 02:02:05 | 显示全部楼层
有点困难
因为,某服务器固定IP地址,但开设虚拟主机很多,每个用户绑定的域名不是唯一的
看一下谷歌所在的IP就知道了:http://www.114best.com/ip/114?w=64.233.189.99
另外
根据IP得到域名是一个反向解析的过程
需要DNS服务上提供这种服务,但现在的很多都没有
都是正向解析,也就是根据域名可得到IP
au3也有这个函数:
TCPNameToIP 转化一个因特网名称(域名)到一个 IP 地址.
搜索了一下
《IP 域名 互转DLL(附源码)》出自网管联盟
http://bbs.wglm.net/read.php?tid=88396&fpage=0&toread=&page=1
里面提到一段au3代码
Local $RemoteIP,$RemoteName
Local $LocaLIP,$LocalName
$dll = DllOpen("IPHOST.dll")
$sReturn = DllCall($dll, "string", "xbsiphost", "long", "0", "string", "192.168.1.220");返回机器名
$sReturn2 = DllCall($dll, "string", "xbsiphost", "long", "1", "string", "game");返回IP
$sReturn3 = DllCall($dll, "string", "xbsiphost", "long", "1", "string", "");返回本机机器名
$sReturn4 = DllCall($dll, "string", "xbsiphost", "long", "0", "string", "");返回本机IP
$RemoteName=$sreturn[0]
$Remoteip=$sreturn2[0]
$LocalName=$sreturn3[0]
$LocaLIP=$sreturn4[0]
MsgBox(4096, "测试", "192.168.1.220的机器名为:"&$RemoteName&Chr(13)&"game的IP为:"&$Remoteip&Chr(13)&"本机机器名为:"&$LocalName&Chr(13)&"本机IP为:"&$LocaLIP, 10)
DllClose($dll)
附IPHOST.dll文件

不过测试不如人意,无法实现
反而类似VB,VC等语言实现IP域名互转的代码网上挺多的
看看论坛其他人有否解决办法了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +10 贡献 +5 收起 理由
ac5474012 + 10 + 5 多次受你们帮助了

查看全部评分

发表于 2009-6-11 07:37:11 | 显示全部楼层
学习下楼上的东东
 楼主| 发表于 2009-6-11 12:47:16 | 显示全部楼层
那麽,还有其他办法吗?比如这个ip 61.135.216.234 怎样查到它的域名?
发表于 2009-6-11 14:39:05 | 显示全部楼层
直接拿比较难,au3没相应的函数可以用,曲线救国吧
思路:
读取http://www.114best.com/ip/114?w=64.233.189.99的源代码,用正则匹配出网页中的域名结果
 楼主| 发表于 2009-6-11 16:41:06 | 显示全部楼层
看来只有这样了,还是原路有的事
发表于 2009-6-11 17:16:33 | 显示全部楼层
今天想起你这个问题,突然想起IEUDF好象有一个ip转域名的函数
找了找,在最后一个函数找到了:
_TCPIpToName
--------------------------------------------------------------------------------
转换IP地址到主机名
#include <iNet.au3>
_TCPIpToName ( $sIp [,$iOption = 0 [, $hDll_Ws2_32 = "Ws2_32.dll" ]] )
参数
$sIp Ip地址(v4)格式
$iOption [可选], 默认 = 0
0 = 返回字符串主机名
1 = 返回数组 (看备注)
$hDll_Ws2_32 [可选], Handle to Ws2_32.dll
返回值
成功: 主机名或者数组 (看备注)
失败: ""
@Error: 0 = 无错误.
1 = inet_addr DllCall失败
2 = inet_addr 失败
3 = gethostbyaddr DllCall 失败
4 = gethostbyaddr 失败, WSAGetLastError = @Extended
5 = gethostbyaddr 失败, WSAGetLastError 失败
6 = strlen/sZStringRead 失败
7 = 读取Aliases数组错误
例如查找一个google的IP64.233.189.99
http://www.114best.com/ip/114?w=64.233.189.99
#include <array.au3>
#include <inet.au3>
Dim $aResult, $sIp
TCPStartup()
$sIp = TCPNameToIP("64.233.189.99")
$aResult = _TCPIpToName ($sIp, 1)
If @error Then
    MsgBox(0, "_TCPIpToName()", "@error = " & @error & @LF & "@extended = " & @extended)
Else
    _ArrayDisplay($aResult, "Local Hostname(s)")
EndIf
成功返回了:


不过别高兴太早
问题也出现了
还是我4楼提到的
某服务器固定IP地址,但开设虚拟主机很多,每个用户绑定的域名不是唯一的

返回的值只有一个,这样就很难判断楼主所要的准确的网络访问记录了
只能说革命尚未成功,同志还需努力咯!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +10 贡献 +5 收起 理由
ac5474012 + 10 + 5 多谢提供,继续学习。

查看全部评分

 楼主| 发表于 2009-6-12 17:42:23 | 显示全部楼层
已经做了搜索,但结果非常不尽如人意。哎 这个问题还是没有解决啊。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-23 02:20 , Processed in 0.088843 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表