I have an piece of industrial equipment that runs on a pretty basic OS called VxWorks. I usually communicate with the system for troubleshooting purposes by setting my IPv4 IP to the same range as the local IP and then running diagnostic software.
A few weeks ago I found that for some odd reason the local IP addreess of the system set itself to 0.0.0.0. Now I want to get into diagnostics to change it but my PC will not permit setting an IP beginning in 0.
Is there any other way to communicate with a device that has a local IP of 0.0.0.0 using a windows PC.
There is no way to reset the device to factory default settings without shipping it back to the manufacturer.
84 Answers
0.0.0.0 is not a valid IP address. RFC1700 (a) states that 0.0.0.0/8 (0.anything.anything.anything) is reserved as a source address only.
Normally you'll see systems and applications bind ports to 0.0.0.0 which means the port is accessible from any interface.
I'm not familiar with VxWrks but I would assume that there is a way to specify a local IP for interfacing with other computer devices.
WindRiver has a variety of manuals on how to configure the IP setup.
3You can trick your PC into thinking that device has a real IP address. But you need the physical address (also known as the MAC address), the thingy with 6 two-hexa-digits fields. You do that by adding it to your arp resolution table. In Windows, open a cmd terminal and use arp.
arp -s <IP address> <physical address>Of course, you need an IP address unique and in your network. Otherwise, the stack is going to reroute somewhere else. If you get to this point, you should be able to access the device. The network infrastructure will route according to the physical address.
In Linux is pretty much the same. Open a terminal, use arp.
It may not work!! Some devices answer only to their own IP. But I'm guessing it's not your case.
6The 0.0.0.0 IP address is fine but I would guess that something else has changed on the network that device is on to block zero-configuration networking traffic from allowing your diagnostic software to easily connect to that device.
As others, state in their answer 0.0.0.0 is a non-routable IP address that is often used by software to bind on any IP address on all networking interfaces on a device. This basically means:
“Hey I am a piece of software and will accept any connection made to any assigned IP address on the machine I am running on.”
So if the device uses DHCP—to get its own IP address for its connected interfaces—and gets an assigned address of 1.2.3.4 then you can connect to that device at 1.2.3.4. And if that address changes to 5.6.7.8 the device will happily allow you to connect to it via 5.6.7.8.
The 0.0.0.0 seems to be something you discovered but is not the cause of the problem. Rather, I’m my opinion, the issue you have is revealed when you state:
“I usually communicate with the system for troubleshooting purposes by setting my IPv4 IP to the same range as the local IP and then running diagnostic software.”
First, that seems odd. Why would you need to change your machine’s local IP address to connect to the VxWorks device? Shouldn’t you just connect directly to the IP address of the device?
Well, when you state this all I can think of is that the device—and the diagnostic software—might operate using some sort of zero-configuration networking setup. Meaning, the device broadcasts on the network, and the diagnostic software is designed to seek out these device broadcasts to help it connect to device without knowing the exact IP address.
This kind of “self-configuring” zero-configuration networking stuff is a convenience until it becomes a headache.
My first guess is that you can connect to the device directly if you can determine what IP address it has assigned to it. And thinking even more, I bet that the reason you could connect to it in the past—but not now—might have to do with some networking change that has blocked the ports that device’s zero-configuration networking setup is broadcasting on. What port that may be? Unsure. But if zero-configuration traffic is not being routed through the network, then that is why you can’t connect to the device and the 0.0.0.0 IP address has nothing to do with it.
0.0.0.0 is an unroutable address. There is no way you can route to it because "it doesn't really exist", or actually, "can exist in too many places".
It can have slightly different meanings depending if it's a host or a route.
As a route, which is not applicable in this case, it means "default route" which with no further instruction means either the default gateway, or "any of my routes", or similar to 127.0.0.1
As a host, then most notably in your case, it is either; as explained on Wikipedia:
The address a host claims as its own when it has not yet been assigned an address. Such as when sending the initial DHCPDISCOVER packet when using DHCP.
The address a host assigns to itself when address request via DHCP has failed, provided the host's IP stack supports this.
Assuming it usually uses DHCP, a couple of things to try, rather than a full reset - 'switch it off & on again' or just unplug the network, wait a minute, plug it back in. It might just ask for a new DHCP address.
Also, of course, make sure it can actually see its DHCP server.