Correcting for network address changes

A network address for an object device is corrected. A recorded network address and a recorded unique enduring identification for the object device are read from a record. The recorded network address is queried for a returned unique enduring identification. The recorded network address is queried by performing an SNMP Get call to the recorded network address or addressing a unique enduring identification query to the recorded network address and receiving the response to the query. The returned unique enduring identification is compared with the recorded unique enduring identification. Responsive to a mismatch between the returned unique enduring identification and the recorded unique enduring identification, a current network address for the object device is resolved and the recorded network address is replaced with the current network address.

FIELD OF THE INVENTION

This invention relates in general to communicating with devices on a network and, more particularly, to correcting network addresses in a list for devices on a network.

BACKGROUND OF THE INVENTION

Devices in a network environment communicate by directing information to network address of other devices. Each device has a unique network address to which information may be directed.

Occasionally, repeated communication with a list of devices in a network is desirable. Conventionally, the network address for each device on the list must be known to achieve the repeated communication. However, in some network environments, such as those using a dynamic host configuration protocol (DHCP), the network address of a device often changes.

If the network address of a device on the list changes, finding the new network address has been difficult, if not impossible. Furthermore, if a new device is assigned to one of the network addresses on the list, the new device may be mistaken for the device on the list, leading to confusion.

In a DHCP network, a central administrator, called a server, controls the assignment of network addresses to devices and keeps an index of the devices to which the network addresses have been assigned. This index designates the devices in the index by a hostname. The hostname is a unique name by which a device is known on a network.

Using hostnames instead of network addresses does not solve all problems associated with a repeated communication with a list of devices. For example, devices may be renamed or removed entirely from a network. In either case, confusion is likely to occur during the attempted communication with the devices on the list.

SUMMARY OF THE INVENTION

According to principles of the present invention, a recorded network address for an object device is corrected. A recorded network address and a recorded unique enduring identification for the object device are read from a record. The recorded network address is queried for a returned unique enduring identification. The returned unique enduring identification is compared with the recorded unique enduring identification. Responsive to a mismatch between the returned unique enduring identification and the recorded unique enduring identification, a current network address for the object device is resolved and the recorded network address is replaced with the current network address.

According to further principles of the present invention, the recorded network address is queried by performing an SNMP Get call to the recorded network address or addressing a unique enduring identification query to the recorded network address and receiving the response to the query.

According to further principles of the present invention, the current network address for the object device is resolved by either reading, from the record, a recorded hostname for the object device and retrieving the current network address for the recorded hostname or by reading, from the record, a recorded hardware address for the object device, sending a network multicast request for hardware addresses, receiving responses to the network multicast for hardware addresses, searching the responses for a response having a match to the recorded hardware address, and extracting the current network address from the response having a match to the recorded hardware address.

DETAILED DESCRIPTION OF THE INVENTION

Illustrated inFIG. 1are an object device2, an index4, and an administrator6. Object device2is any device able to communicate with administrator6over a network. Object device2is assigned a network address by which administrator6is able to communicate with object device2. Object device2includes a unique enduring identification8. In one embodiment, unique enduring identification8is a serial number. In another embodiment, unique enduring identification8is a hardware address10. Furthermore, unique enduring identification8may be a combination of a number and an address.FIG. 1illustrates only one object device. However, any number of object devices may be served by the present invention.

Unique enduring identification2is any unique enduring identification assigned to object device2and known by object device2. Likewise, hardware address10is any unique hardware address assigned to object device2and known by object device2.

Index4is an index providing a network address for each hostname. For example, index4is an index, or list, maintained by a dynamic host configuration protocol (DHCP) server or DHCP administrator. Where necessary to the present invention, index4is accessible by administrator6.

Administrator6is any combination of hardware and software, or executable code, for performing steps of the method of the present invention. Administrator6includes a record12, a reader14, an interrogator16, a comparator18, rectifier20, and storage device22.

Record12is any accumulation of information readable by administrator6and optionally stored on storage device22. Record12includes, for at least one object device2, a recorded network address24and a recorded unique enduring identification26and, optionally, a recorded host name28and a recorded hardware address30. Each of the elements of information recorded in record12is referred to using the prefix “recorded” in order to distinguish it from other similarly named information.

Reader14is any combination of hardware and software configured to read, as necessary for object device2, recorded IP address24, recorded unique enduring identification26, recorded hostname28, and recorded hardware address30.

Interrogator16is any combination of hardware and software configured to query recorded network address24for unique enduring identification8, of object device2. In one embodiment, investigator16includes a manager32configured to perform an SNMP Get call to the network address. In an alternate embodiment, interrogator16includes a dispatcher34configured to address a unique enduring identification query to recorded network address24and a receiver36configured to receive the response to the query.

Comparator18is any combination of hardware and software configured to compare returned unique enduring identification8with recorded unique enduring identification26.

Rectifier20is any combination of hardware and software configured to respond to a mismatch between returned unique enduring identification8and recorded unique enduring identification26, by finding a current network address for object device2and replacing recorded IP address24with the current network address. In one embodiment, rectifier20includes a retriever38configured to retrieve the current network address for recorded hostname28. Retriever38retrieves the current network address from index4.

In an alternate embodiment, rectifier20includes a broadcaster40configured to send a network multicast request for hardware addresses, a listener42configured to receive responses to the network multicast for hardware addresses10, an investigator44configured to search the responses for a response having a match to recorded hardware address30, and an extractor46configured to extract the current network address from the response having a match to recorded hardware address30.

Storage device22is any device for storing data or executable code. Storage device22may also be a program storage device tangibly embodying a program, applet or instructions executable by administrator6for performing the method steps of the present invention executable by administrator6. Storage device22may be any type of storage media such as magnetic, optical, or electronic storage media. Although depicted as integral to administrator6, storage device22is alternatively embodied separate from administrator6and accessible by administrator6.

FIG. 2is a flow chart representing steps of one embodiment of the present invention. Although the steps represented inFIG. 2are presented in a specific order, the present invention encompasses variations in the order of steps. Furthermore, additional steps may be executed between the steps illustrated inFIG. 2without departing from the scope of the present invention.

Recorded network address24is read48from record12. Recorded network address24is then queried50for unique enduring identification8. In one embodiment, recorded network address24is then queried50by addressing a unique enduring identification query to recorded network address24and receiving the response to the query. In an alternative embodiment, recorded network address24is then queried50by performing an SNMP Get call to recorded network address24.

If unique enduring identification8received from the query matches52recorded unique enduring identification26, then object device2at recorded network address24is the expected device. If object device2is the expected device, then administrator6communicates54with object device2as desired. For example, administrator6may retrieve information from object device2or maintain object device2.

If unique enduring identification8received from the query does not match52recorded unique enduring identification26, then object device2at recorded network address24is not the expected device. If object device2is not the expected device, then administrator6resolves56the current network address for the expected device. In one embodiment, the current network address is resolved56by reading recorded hostname28from record12and retrieving the current network address for recorded hostname28. For example, the current network address for recorded hostname28may be resolved56by looking it up in index4.

In an alternative embodiment, the current network address is resolved56by reading recorded hardware address30, sending an network multicast request for hardware addresses10, receiving responses to the network multicast, searching the responses for a response having a match to recorded hardware address30, and extracting the current network address from the response having a match to the recorded hardware address30. If no match is resolved56in the responses to recorded hardware address30, the multicast may be repeated as many times as desired or until a match is found.

After the current network address is resolved56for object device2, recorded IP address24is replaced with the current network address. The process is then repeated as necessary to verify the correctness of the recorded network address. Additionally, the process may be repeated for each object device2represented in record12.

The foregoing description is only illustrative of the invention. Various alternatives and modifications can be devised by those skilled in the art without departing from the invention. Accordingly, the present invention embraces all such alternatives, modifications, and variances that fall within the scope of the appended claims.