来源:http://blog.csdn.net/qq_27109081/article/details/47128175
如何ping别人的计算机名来获取IP?
今天想试着用arp命令干点坏事来陶冶一下情操,当我ping电脑名查询IP时,发现返回的是[fe80::64ca:cb99:2e4d:bd27%13]32位字节数据。于是我百度了几小时,终于找到了解决的办法,下面是整理出来的具体方法:
一般ping命令返回一个公网ip地址,但是这个ip地址和所查机器的当前公网ip不一致,遇到这种情况,首先要确认是不是你的电脑中的DNS缓存尚未刷新导致。使用:命令“ ipconfig /displaydns”可以看到本机DNS缓存中的所有记录。
计算机ping一个域名时,会先去本机的DNS缓存中查找,上面看到的DNS缓存中的信息就影响了ping的结果。这时用命令“ipconfig /flushdns”就可以清除本机DNS缓存中的所有记录。 清除了缓存后,再ping域名,就可以排除本机DNS缓存的影响,这时返回的ip地址就是正确的。
如果仍然是错的,这时候很可能是你的宽带接入商的地区DNS服务器尚未刷新数据,也就是它尚未同步DNS数据,那么当你的所在电脑的ip地址变化了之后,虽然Oray的DNS服务器已经将要查询的计算机名指向了当前的新ip地址,但是你那个地区的接入商的DNS服务器返回给你电脑的所查计算机名的ip地址还是之前的旧ip地址。 这种时候你要做的就是把本机DNS服务器设置为当地最高效的DNS服务器,你可以直接拨打你的宽带接入商的服务电话询问并把问到的高效DNS地址设置到你的电脑上。例如将电脑的主DNS从202.96.128.86改为 202.96.128.166,然后用命令“ipconfig/flushdns”清除本机DNS缓存后,再ping 计算机名。当然,这是很麻烦的。
然而,还有一个非常好用方法,就是使用“ping 计算机名 -4”命令,即查询IP4的地址。返回的绝对是一个正确ip,本人亲测,效果非常棒。
也可以用IP地址反查主机名,或是用主机名查询计算机的MAC,这里就要用到一些arp命令或NBTSTAT命令。下面附其语法格式:
一. NBTSTAT [ [-a RemoteName] [-A IP address] [-c] [-n] [-r] [-R] [-RR] [-s] [-S] [interval] ]
参数说明:
-a Remoename—说明使用远程计算机的名称列出其名称表,此参数可以通过远程计算机的NetBios名来查看他的当前状态。
-A IP address—说明使用远程计算机的 IP 地址并列出名称表,这个和-a不同的是就是这个只能使用IP,其实-a就包括了-A的功能了。
-c—列出远程计算机的NetBIOS 名称的缓存和每个名称的 IP 地址这个参数就是用来列出在你的NetBIOS里缓存的你连接过的计算机的IP。
-n—列出本地机的 NetBIOS 名称,此参数与上面所介绍的一个工具软件“netstat”中加“ -a”参数功能类似,只是这个是检查本地的,
如果把netstat -a后面的IP换为自己的就和nbtstat -n的效果是一样的了。
-r—列出 Windows 网络名称解析的名称解析统计。在配置使用 WINS 的 Windows 2000 计算机上,此选项返回要通过广播或 WINS 来解析和注册的名称数。
-R—清除 NetBIOS 名称缓存中的所有名称后,重新装入 Lmhosts 文件,这个参数就是清除nbtstat -c所能看见的缓存里的IP。
-S—在客户端和服务器会话表中只显示远程计算机的IP地址。
-s—显示客户端和服务器会话,并将远程计算机 IP 地址转换成NETBIOS名称。此参数和-S差不多,只是这个会把对方的NetBIOS名给解析出来。
-RR—释放在 WINS 服务器上注册的 NetBIOS 名称,然后刷新它们的注册。
interval—每隔interval 秒重新显示所选的统计,直到按“CTRL+C”键停止重新显示统计。如果省略该参数,nbtstat 将打印一次当前的配置信息。此参数和netstat的一样,nbtstat中的“interval”参数是配合-s和-S一起使用的。在局域网内,我们常使用一些工具来查IP查主机名,利用ipconfig或者ping可以查到IP地址。而要查网内的主机,可以用网上邻居,其实我们也有一个很方便的方法,通过指定IP地址就可以查询到主机名,在windows的命令行方式下,输入命令:nbtstat -A 192.168.1.111(对方的IP地址)就会把主机名,此主机所在的群组名也显示出来nbtstat该命令使用TCP/IP上的etBIOS显示协议统计和当前TCP/IP连接,使用这个命令你可以得到远程主机的NETBIOS信息,比如用户名、所属的工作组、网卡的MAC地址等。在此我们就有必要了解几个基本的参数。
-a使用这个参数,只要你知道了远程主机的机器名称,就可以得到它的NETBIOS信息(下同)。
-A这个参数也可以得到远程主机的NETBIOS信息,但需要你知道它的IP。
-n列出本地机器的NETBIOS信息。
当得到了对方的IP或者机器名的时候,就可以使用nbtstat命令来进一步得到对方的信息了,这又增加了我们入侵的保险系数。
二. ARP [-a [inetaddr] [-n ifaceaddr] ,-g [inetaddr] [-n ifaceaddr] , -d inetaddr [ifaceaddr] ,-s inetaddr etheraddr [ifaceaddr] ]
-a [inetaddr] [-n ifaceaddr]
-a不带参则显示所有接口的当前ARP缓存表。要显示指定IP地址的ARP缓存项,
请使用带有inetaddr 参数的“arp -a” 此处的inetaddr 代表指定的IP 地址。要显示指定接口的ARP缓存表,请使用“-n ifaceaddr”
参数,此处的ifaceaddr 代表分配给指定接口的IP 地址。-N 参数区分大小写。
-g [inetaddr] [-n ifaceaddr] 与-a 相同。
-d inetaddr [ifaceaddr] 删除指定的IP 地址项,此处的inetaddr 代表IP 地址。对于指定的接口,要删除表中的某项,请使用ifaceaddr
参数,此处的ifaceaddr 代表分配给该接口的IP地址。要删除所有项,请使用星号(*) 通配符代替inetaddr。
-s inetaddr etheraddr [ifaceaddr] 向ARP 缓存添加可将IP 地址inetaddr 解析成物理地址etheraddr 的静态项。要向指定接口的表添加
静态ARP 缓存项,请使用ifaceaddr 参数,此处的ifaceaddr 代表分配给该接口的IP地址。eg:arp -s 10.110.11.1 00-1a-a9-bf-26-43
注意:inetaddr 和ifaceaddr 的IP 地址用带圆点的十进制记数法表示。物理地址Etheraddr由六个字节组成,这些字节用十六进制记数法表示并且用连字符隔开( 比如,00-AA-00-4F-2A-9C)。只有当TCP/IP 协议在网络连接中安装为网络适配器属性的组件时,该命令才可用。
最后分享下今天利用arp干的一些事儿(寝室几个,看到了一定要冷静,千万不要骂我。我已经知道错了。):将自己的MAC 伪造成网关的MAC。其他人就上不了网了。
已知默认网关是:10.110.11.1 首先,用"arp -a 10.110.11.1"命令查询网关的MAC地址,然后将自己的MAC改成网关的MAC,最后将自己的IP改成网关的IP即可。操作完成后,只要自己开着电脑,连着网线。别的PC就上不了网了。