使用源IP ping IP?

8

我想发送ping消息,并指定源IP地址。尝试了以下方法:

ping example.org -i 88.65.48.77

它可以正常进行ping操作,但是我感到困惑。在手册中,-S是源操作符。但是如果我使用-S 88.65.48.77,我会得到一个“Ping Transmit failed. General Error.”的错误信息。那么正确的做法是什么?


Unix/Linux的哪个版本? - Mark Stewart
在Windows系统上,使用命令行。 - user198989
1
所以,你有一台Windows电脑;它是否有多个网络接口卡(NIC),其中一个的IP地址是88.65.48.77?-S标志的目的是从特定的NIC发送ping请求。 - Mark Stewart
不,IP地址不是其中之一。 - user198989
4个回答

5

只有当您拥有多个网络接口卡(NICs)并且希望从特定的NIC发送ping时,您才需要/想要-S标志;这种情况很少见。您的命令

ping example.org -i 88.65.48.77

实际上是在使用TTL(生存时间)值为88.65.48.77向example.org发送ping请求,其中-i实际上期望的是最大“跳数”数量--比如10,而不是IP地址。

因此,如果您要ping 88.65.48.77,只需

ping 88.65.48.77

不,我想用模拟的IP地址ping example.org。这意味着在向example.org发送ping时,使用源IP地址为88.65.48.77。 - user198989
3
抱歉,使用ping命令无法欺骗您的IP地址。一些网络协议分析器可以通过生成“伪造”的数据包来进行欺骗,但ping命令无法做到这一点。 - Mark Stewart
@MarkStewart 如何“欺骗”IP并ping另一个IP?换句话说,我的IP是A,但我想用IP B ping IP C。 - 3kstc
像Savvius的Omnipeek这样的商业网络协议分析器程序可以做到这一点;不确定Wireshark(开源)是否可以。 - Mark Stewart

5

使用不同的环境检查您的网络源地址。

如果您是Windows用户,请使用以下命令。 示例:

检查您的网络源地址时,可以在不同的环境中进行。

如果您是Windows用户,请使用以下命令。 例如:

ping target address(x.x.x.x) -S source address(x.x.x.x)

如果您是Linux用户,请使用以下命令。 示例:
ping -I source address(x.x.x.x) target address(x.x.x.x) 

在思科设备中使用以下命令。

示例:

ping target address(x.x.x.x) source source address(x.x.x.x)

0
我曾经遇到这样的情况:ping example.org -S x.x.x.x,但是我收到了一个Ping Transmit failed. General Error.的错误提示。在我的情况下,我尝试使用的IP地址并没有绑定到该机器上。使用正确的源IP解决了我的问题。

0
要在Windows中“欺骗”IP地址,您需要将该IP地址添加到相关的网络接口中。
1. 点击开始,输入npca.cpl,然后按回车键。 2. 右键点击相关的接口(假设为以太网),选择属性。 3. 选择Internet协议版本4(TCP/IPv4),然后选择属性。 4. 选择高级选项。 5. 在IP地址下选择添加... 6. 输入您的IP地址和子网掩码(例如88.65.48.77 / 255.255.255.0或.255也可以)。 7. 选择添加、确定、确定以保存更改。
现在,您可以使用Ping -S 88.65.48.77 example.org来测试发送ping到该IP地址的功能。
背后发生了什么?您的IP地址被绑定到相关的网络接口上,并且Windows还更新了路由表以允许该IP地址正常工作,即使您的主要IP地址可能是类似于192.168.1.100的其他地址。您可以通过在命令提示符中输入ROUTE PRINT来查看这一点。您还可以使用诸如WireShark之类的工具来查看接口上的流量,并确认您确实通过88.65.48.77发送了ICMP(Ping)数据包。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接