如何与已分配“ 0.0.0.0” IP地址的设备通信?


20

我有一台工业设备,可以在称为VxWorks的基本操作系统上运行。我通常通过将IPv4 IP设置为与本地IP相同的范围,然后运行诊断软件来与系统通信以进行故障排除。

几周前,我发现由于某种奇怪的原因,系统的本地IP地址设置为0.0.0.0。现在,我想进入诊断程序来对其进行更改,但我的PC不允许以开头的IP设置IP 0

是否可以通过其他任何方式与具有0.0.0.0使用Windows PC 的本地IP的设备进行通信。

如果不将设备寄回制造商,则无法将设备重置为出厂默认设置。


14
与其他人一样,状态0.0.0.0不是可路由的地址。绑定了许多软件,0.0.0.0以使该软件可以绑定到分配给网络接口的任何IP地址。例如,这使将设备置于DHCP设置上变得更加容易,而您只需获取设备的IP地址即可进行连接,仅此而已。我要问的最大问题是,为什么要将机器的IPv4 IP设置为与本地IP相同的范围,然后再运行诊断软件?没有意义。您应该只获取设备的IP地址并连接到该IP地址。也就是说,我有个主意。发布答案。
JakeGould

VX Works可能无法运行DHCP,因此可能需要一个静态IP地址,这是您必须在VX Works上内部执行的操作。除此之外,与该VX Works机器通信的PC上的任何软件或接口都必须知道该IP地址。您必须验证所有需要与VX Works机器通信的机器都知道其IP地址。它可能会自动填充,或者您可能必须手动输入。全0s地址用作默认网关,但是,如果您要与之交谈的VX Works计算机和您的主机都具有相同的网关。
Shankensteinium '18

7
您如何确定设备使用的IP地址为0.0.0.0?您是否使用了可以通过网络与设备通信的软件,或者设备上是否有基本的人机界面(HMI)来显示IP地址?另外,为了避免出现明显的问题,您是否尝试过将其关闭然后再打开以查看它是否选择了一个合理的地址?
山姆·斯库斯

5
0.0.0.0如果它具有符合标准的IP堆栈,则不能从字面上分配其自身地址。这留下了两个选择:1 . 0.0.0.0作为一种信号,表明它未能分配IP地址。2.它有一个损坏的IP堆栈,该IP堆栈设法以某种方式对其进行分配0.0.0.0。我对VxWorks不太了解,无法说出这两者中的哪一个是最有可能的。如果确实分配了地址0.0.0.0,则需要一个被入侵的IP堆栈才能与其通信。但是,如果根本没有分配地址,那将不会有多大好处。
卡巴斯德(Kasperd),

4
您如何确定它具有0.0.0.0 IP地址?如果您在终端上,可以使用它来设置IP。
CramerTV '18 / 10/22

Answers:


23

0.0.0.0不是有效的IP地址。RFC1700(a)指出0.0.0.0/80.anything.anything.anything)仅保留为源地址。

通常,您会看到系统和应用程序将端口绑定到端口,0.0.0.0这意味着可以从任何接口访问该端口。

我对VxWrks不熟悉,但是我认为有一种方法可以指定用于与其他计算机设备接口的本地IP。

WindRiver提供了许多有关如何配置IP设置的手册。


如果0.0.0.0仅作为有效,那么端口如何绑定到0.0.0.0可访问的地方?我确定我缺少细节,但这听起来像矛盾。
曼队长

20
@CaptainMan:您将套接字API的一个方面与IP协议的一个方面混淆了。绑定0.0.0.0是一种API级的东西,可以接受寻址到任何本地配置地址的数据包/连接。它不涉及以0.0.0.0协议级别传输到任何地方的数据包。
R.,

1
@CaptainMan:0.0.0.0被视为空字符串。如果将服务器设置为接受来自的连接,0.0.0.0则它将接受来自任何IP地址的连接-这0.0.0.0就是说。如果不绑定,0.0.0.0则服务器将仅接受来自单个IP地址的连接,并拒绝来自网络上任何其他计算机的连接。将非0.0.0.0绑定视为一种内置防火墙
slebetman

13

您可以欺骗您的PC,使其认为该设备具有真实的IP地址。但是您需要物理地址(也称为MAC地址),它具有6个两位六进制字段。您可以通过将其添加到您的arp分辨率表中来实现。在Windows中,打开一个cmd终端并使用arp。

arp -s <IP address> <physical address>

当然,您的网络中需要一个唯一的IP地址。否则,堆栈将在其他地方重新路由。如果到此为止,您应该可以访问该设备。网络基础结构将根据物理地址进行路由。

在Linux中几乎是相同的。打开终端,使用arp。

它可能不起作用!某些设备仅回答自己的IP。但我想这不是您的情况。


1
我有兴趣知道这是否有效。绝对是一个很酷的把戏。
trognanders '18 -10-23

@BaileyS哦,在正常情况下,它可以正常工作。您只需将用于地址解析的手动替代插入自动表中。它是否会帮助op是另一个问题
Gnudiff

2
如果您现在可以将内容发送到该地址,这并不总是意味着您可以正确地处理“响应”,如果有一个...
rackandboneman 18-10-23

1
大部分iptables都位于最低级别的路由设备之上,因此可能无法访问这类作品……
rackandboneman 18-10-24

1
@BaileyS有,没有。具有正常IP堆栈的设备不应该这样做。路由表将忽略除IP地址之外的其他IP地址的数据包地址,或者不知道如何路由。在这种情况下,OP询问的是小型工业设备。最有可能的是,它没有实现IP堆栈。它只是回答到达它的任何数据包。我知道这是因为我已经看过并使用过很多类似的东西。为了节省成本,他们没有用于配置的面板或界面。向他们发送具有与MAC地址匹配的“建议” IP的数据包就足够了。
加贝·水冢

12

0.0.0.0IP地址是不错,但我猜想,别的东西也该设备是从让你的诊断软件可以方便地连接到该设备阻止零配置网络流量在网络上的改变。

与其他情况一样,答案0.0.0.0中的状态是不可路由的IP地址,软件通常使用该IP地址绑定设备上所有网络接口上的任何IP地址。这基本上意味着:

“嘿,我是一款软件,将接受与正在运行的计算机上任何已分配IP地址建立的任何连接。”

因此,如果设备使用DHCP(为其连接的接口获取自己的IP地址)并获取分配的地址,1.2.3.4则可以在处连接该设备1.2.3.4。如果5.6.7.8该设备的地址更改了,您将很乐意通过进行连接5.6.7.8

0.0.0.0似乎有什么东西,你发现了,但不是问题的原因。相反,我认为,当您陈述以下内容时,就会发现您遇到的问题:

“我通常通过将IPv4 IP设置为与本地IP相同的范围,然后运行诊断软件来与系统通信以进行故障排除。”

首先,这似乎很奇怪。为什么需要更改计算机的本地IP地址才能连接到VxWorks设备?您不应该直接连接到设备的IP地址吗?

好吧,当您陈述所有这些时,我能想到的是该设备以及诊断软件可能会使用某种零配置网络设置来运行。意思是,设备在网络上广播,诊断软件旨在查找这些设备的广播,以帮助其在不知道确切IP地址的情况下连接到设备。

这种“自我配置”的零配置网络功能在给您带来麻烦之前一直很方便。

我的第一个猜测是,如果可以确定设备已分配给它的IP地址,则可以直接连接到该设备。再想一想,我敢打赌,过去(而不是现在)可以连接到它的原因可能与某些网络更改有关,这些更改阻止了设备零配置网络设置正在广播的端口。那可能是哪个端口?不确定 但是,如果没有通过网络路由零配置流量,那么这就是为什么您无法连接到设备且0.0.0.0IP地址与它无关的原因。


6

0.0.0.0是无法路由的地址。您无法路由到它,因为“它确实不存在”,或者实际上“可能存在于太多地方”。

根据它是主机还是路由,其含义可能略有不同。

作为在这种情况下不适用的路由,它表示“默认路由”,没有进一步的说明即表示默认网关或“我的任何路由”,或类似于 127.0.0.1

作为主持人,最明显的情况是 如维基百科上所述

尚未分配主机地址的主机称其为自己的地址。例如在使用DHCP时发送初始DHCPDISCOVER数据包时。

当通过DHCP的地址请求失败时,主机为自己分配的地址,只要主机的IP堆栈支持此地址。

假设它通常使用DHCP,请尝试一些操作,而不是完全重置-“关闭并重新打开”,或者只是拔掉网络,等待一会儿,再将其重新插入。它可能只是要求一个新的DHCP。地址。

另外,当然,请确保它可以实际看到其DHCP服务器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.