System and method for configuring internet protocol devices
By working in concert with the bootstrap controller and the IP address controller, the IP address of the IP camera is automatically adjusted, solving the problems of complex configuration and unreachable devices in existing technologies, and realizing a more efficient network configuration and recovery mechanism.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- SHANGHAI UNITED IMAGING INTELLIGENCE CO LTD
- Filing Date
- 2023-06-19
- Publication Date
- 2026-04-21
AI Technical Summary
The network configuration process for existing IP cameras is complex and error-prone, leading to device unreachability, especially when the static IP address is incorrectly set and difficult to recover.
It employs a boot controller and an IP address controller, automatically assigning dynamic IP addresses via a DHCP server, and checking whether static IP addresses are in the same subnet during the boot process, automatically adjusting IP addresses to ensure reachability.
It simplifies the network configuration process for IP cameras, reduces the risk of device unavailability, and improves the reliability and efficiency of configuration.
Smart Images

Figure CN116996484B_ABST
Abstract
Description
Technical Field
[0001] The disclosed embodiments relate to Internet Protocol (IP) devices; and more specifically to systems and methods for configuring Internet Protocol (IP) devices to be discoverable by a client device on a local network. Background Technology
[0002] IP devices, such as Internet Protocol (IP) cameras, need to connect to a network to allow clients to access the video feed from them. Each IP camera on the network is configured with an IP address, which is a unique identifier that allows access to the corresponding video feed. Typically, IP cameras require manual intervention to set a specific static IP address, or they automatically obtain a dynamic IP address over the network. For example, once an IP camera is connected to the network using a wired connection (such as a LAN cable) or a wireless network (by entering a wireless network certificate), the network's Dynamic Host Configuration Protocol (DHCP) server can assign a dynamic IP address to the IP camera. Sometimes, clients may want (or need) to set a static IP address for their IP cameras so that they know the camera's IP address on the network at any given time for a reliable connection, thus enabling easy access to the IP camera from the client's device (e.g., by simply entering the set static IP address as a URL into the client's browser, etc.).
[0003] To set a static IP address for an IP camera, network configuration is required. This is typically not something that can be done using only the IP camera; it usually involves a specific application installed on a separate personal computer (PC). Network configuration for an IP camera includes settings such as its preferred static IP address, gateway address, subnet mask, and domain name server address. During the network configuration process, if the customer incorrectly enters incorrect configuration parameters, such as providing a static IP address outside the network subnet address, the IP camera may become unreachable. In such cases, a physical connection to the IP camera using a network cable or configuration cable is usually required to recover from this incorrect network configuration state. For example, the IP camera may need to be reconfigured to be assigned a dynamic IP address, requiring the entire network configuration process to be repeated.
[0004] Therefore, based on the preceding discussion, there is a need to overcome the aforementioned drawbacks associated with existing IP cameras and to provide a workflow that makes network configuration of IP cameras easier and recoverable in situations such as when a user sets a static IP address outside of a subnet address and then the IP camera becomes unreachable. Summary of the Invention
[0005] Aspects of the disclosed embodiments seek to provide a system for configuring an Internet Protocol (IP) device to be discoverable on a local network for a client device. Aspects of the disclosed embodiments also seek to provide a method for configuring an Internet Protocol (IP) device to be discoverable on a local network for a client device. Aspects of the disclosed embodiments also seek to provide an Internet Protocol (IP) device configured to be discoverable on a local network for a client device. The object of the disclosed embodiments is to provide a solution that at least partially overcomes the problems encountered in existing IP devices and provides a workflow that makes network configuration of IP devices easier and recoverable from situations such as when a user sets a static IP address other than a subnet address and then the IP device becomes unreachable.
[0006] In one aspect, embodiments of this disclosure provide a system for configuring an Internet Protocol (IP) device to be discoverable by a client device on a local network having a Dynamic Host Configuration Protocol (DHCP) server for allocating dynamic IP addresses. The system includes a boot controller for the IP device, configured to generate a boot signal upon completion of a boot process for the IP device. The system also includes an IP address controller for the IP device. The IP address controller is configured to obtain a dynamic IP address assigned to the IP device by the DHCP server in response to the boot signal from the boot controller. The IP address controller is further configured to check whether a static IP address has already been set for the IP device. The IP address controller is also configured to determine whether the dynamic IP address and the static IP address are in the same subnet of the local network. The IP address controller is further configured to implement the static IP address set for the IP device when the dynamic IP address and the static IP address are in the same subnet of the local network. The IP address controller is also configured to implement the dynamic IP address assigned to the IP device when the dynamic IP address and the static IP address are not in the same subnet of the local network.
[0007] In another aspect, embodiments of this disclosure provide a method for configuring an Internet Protocol (IP) device to be discoverable by a client device on a local network having a Dynamic Host Configuration Protocol (DHCP) server for allocating dynamic IP addresses. The method includes: obtaining a dynamic IP address assigned to the IP device upon completion of the IP device's boot process. The method further includes: checking whether a static IP address has already been set for the IP device. The method further includes: determining whether the dynamic IP address and the static IP address are in the same subnet of the local network. The method further includes: implementing the static IP address set for the IP device if the dynamic IP address and the static IP address are in the same subnet of the local network. The method further includes: implementing the dynamic IP address assigned to the IP device if the dynamic IP address and the static IP address are not in the same subnet of the local network.
[0008] In another aspect, embodiments of this disclosure provide an Internet Protocol (IP) device configured to be discoverable by a client device on a local network having a Dynamic Host Configuration Protocol (DHCP) server for allocating dynamic IP addresses. The IP device includes a boot controller configured to generate a boot signal upon completion of a boot process for the IP device. The IP device also includes an IP address controller. The IP address controller is configured to obtain a dynamic IP address assigned to the IP device by the DHCP server in response to the boot signal from the boot controller. The IP address controller is further configured to check whether a static IP address has already been set for the IP device. The IP address controller is also configured to determine whether the dynamic IP address and the static IP address are in the same subnet of the local network. The IP address controller is further configured to implement the static IP address set for the IP device when the dynamic IP address and the static IP address are in the same subnet of the local network. The IP address controller is also configured to implement the dynamic IP address assigned to the IP device when the dynamic IP address and the static IP address are not in the same subnet of the local network.
[0009] The embodiments disclosed herein largely eliminate or at least partially solve the aforementioned problems in the prior art.
[0010] Additional aspects, advantages, features, and objects of this disclosure will become apparent from the accompanying drawings and the detailed description of exemplary embodiments interpreted in conjunction with the appended claims.
[0011] It should be understood that the features of this disclosure are readily combined in various combinations without departing from the scope of this disclosure as defined by the appended claims. Attached Figure Description
[0012] The above-described invention and the following detailed description of exemplary embodiments can be better understood when read in conjunction with the accompanying drawings. Exemplary structures of this disclosure are shown in the drawings for illustrative purposes. However, this disclosure is not limited to the specific methods and apparatus disclosed herein. Furthermore, those skilled in the art will understand that the drawings are not to scale. Wherever possible, the same elements are indicated by the same reference numerals.
[0013] Embodiments of this disclosure will now be described by way of example only with reference to the following figures, in which:
[0014] Figure 1 This is a schematic diagram of a system for configuring an Internet Protocol (IP) device to be discoverable on a local network for a client device, according to embodiments of the present disclosure; and
[0015] Figure 2 The following is a flowchart illustrating the steps involved in a method for configuring an Internet Protocol (IP) device to be discoverable by a client device on a local network, according to embodiments of the present disclosure.
[0016] In the accompanying drawings, underlined reference numerals are used to indicate items on which the underlined reference numeral is located or items adjacent to it. Ununderlined reference numerals refer to items identified by a line connecting the ununderlined reference numeral to the item. When a reference numeral is ununderlined and accompanied by an associated arrow, the ununderlined reference numeral is used to identify the general item to which the arrow points. Detailed Implementation
[0017] The following detailed description illustrates embodiments of the present disclosure and how they can be implemented. Although some modes of carrying out the present disclosure have been disclosed, those skilled in the art will recognize that other embodiments for carrying out or practicing the present disclosure are also possible.
[0018] In one aspect, embodiments of this disclosure provide a system for configuring an Internet Protocol (IP) device to be discoverable by a client device on a local network having a Dynamic Host Configuration Protocol (DHCP) server for allocating dynamic IP addresses. The system includes a boot controller for the IP device, configured to generate a boot signal upon completion of a boot process for the IP device. The system also includes an IP address controller for the IP device. The IP address controller is configured to obtain a dynamic IP address assigned to the IP device by the DHCP server in response to the boot signal from the boot controller. The IP address controller is further configured to check whether a static IP address has already been set for the IP device. The IP address controller is also configured to determine whether the dynamic IP address and the static IP address are in the same subnet of the local network. The IP address controller is further configured to implement the static IP address set for the IP device when the dynamic IP address and the static IP address are in the same subnet of the local network. The IP address controller is also configured to implement the dynamic IP address assigned to the IP device when the dynamic IP address and the static IP address are not in the same subnet of the local network.
[0019] In another aspect, embodiments of this disclosure provide a method for configuring an Internet Protocol (IP) device to be discoverable by a client device on a local network having a Dynamic Host Configuration Protocol (DHCP) server for allocating dynamic IP addresses. The method includes: obtaining a dynamic IP address assigned to the IP device upon completion of the IP device's boot process. The method further includes: checking whether a static IP address has already been set for the IP device. The method further includes: determining whether the dynamic IP address and the static IP address are in the same subnet of the local network. The method further includes: implementing the static IP address set for the IP device if the dynamic IP address and the static IP address are in the same subnet of the local network. The method further includes: implementing the dynamic IP address assigned to the IP device if the dynamic IP address and the static IP address are not in the same subnet of the local network.
[0020] In another aspect, embodiments of this disclosure provide an Internet Protocol (IP) device configured to be discoverable by a client device on a local network having a Dynamic Host Configuration Protocol (DHCP) server for allocating dynamic IP addresses. The IP device includes a boot controller configured to generate a boot signal upon completion of a boot process for the IP device. The IP device also includes an IP address controller. The IP address controller is configured to obtain a dynamic IP address assigned to the IP device by the DHCP server in response to the boot signal from the boot controller. The IP address controller is further configured to check whether a static IP address has already been set for the IP device. The IP address controller is also configured to determine whether the dynamic IP address and the static IP address are in the same subnet of the local network. The IP address controller is further configured to implement the static IP address set for the IP device when the dynamic IP address and the static IP address are in the same subnet of the local network. The IP address controller is also configured to implement the dynamic IP address assigned to the IP device when the dynamic IP address and the static IP address are not in the same subnet of the local network.
[0021] The disclosed embodiments relate to configuring an Internet Protocol (IP) device. Specifically, the disclosed embodiments relate to configuring an IP device to be discoverable on a local network for client devices. Compared to existing mechanisms and methods, the disclosed embodiments enable foolproof configuration of IP devices even in the event of incorrect input of IP address information, etc.
[0022] refer to Figure 1 This illustration depicts a system (generally indicated by reference numeral 100) for configuring an Internet Protocol (IP) device 110 to be discoverable by a client device 120 via a local network 130. This disclosure has been described with respect to the IP device 110 being an IP camera (the two terms are used interchangeably hereinafter). This is done for the convenience of describing embodiments of the proposed invention and not as a limitation; and this disclosure is equally applicable to any electronic device that needs to be configured to connect to the local network 130. As used herein, an Internet Protocol camera or IP camera 110 is a digital camera that receives control data and transmits image data via the local network 130. An IP camera 110 can generally be used for surveillance; however, unlike an analog closed-circuit television (CCTV) camera, it may not require a local recording device. The term "IP camera" as used herein can be applied to all digital cameras that can be directly accessed via a network connection. Those skilled in the art will understand that the teachings of this disclosure can be implemented to further configure already configured electronic devices (wired or wireless) to provide the device with further communication capabilities, such as the ability to communicate via the Internet (i.e., outside the local network 130).
[0023] Furthermore, as used herein, the term "client device" means a device including at least one processor that accesses services available to a remote processing system via a communication network (such as local network 130). Examples of client devices 120 include, but are not limited to, workstations, desktop computers, mobile computers, laptop computers, netbook computers, tablet computers, smartphones, personal digital assistants (PDAs), etc. Additionally, as used herein, the terms "client" or "user" mean a person (i.e., a human being).
[0024] Furthermore, as used herein, local network 130 generally refers to a communication network primarily used by client device 120. For example, if client device 120 is typically used to connect to a communication network that provides communication services to the homes of users of client device 120, then such a communication network is local network 130. Similarly, if client device 120 is typically used to connect to a communication network that provides communication services to the workplaces of users of client device 120, then such a communication network is local network 130. It is understood that local network 130 provided in public facilities such as cafes, restaurants, libraries, hotels, airports, arenas, stadiums, etc., is not local network 130 unless such public facilities are the workplaces of clients of client device 120 connected to such a communication network.
[0025] In one example, local network 130 is a local area network (LAN), which is a group of computers and peripherals sharing a public communication line or wireless link to client device 120, typically located in different geographical areas. In other examples, local network 130 may also include a wide area network (WAN), which is a large information network that may not be tied to a single geographical location, without departing from the spirit and scope of this disclosure. For purposes of explanation, this disclosure describes local network 130 as a wired network connection (such as an Ethernet connection); however, it is understood that this disclosure generally applies to any type of local network capable of communicating or connecting IP device 110 to client device 120, including wireless networks (such as Wi-Fi networks) or combinations of wired and wireless networks, without any limitation. These details and variations will be apparent to those skilled in the art, and therefore, for the sake of brevity, they are not further described.
[0026] IP device 110 can utilize communication protocols to allow communication with other devices, such as client device 120, via local network 130. An example of a standard protocol available in the transmission control protocol stack is TCP / IP, a connection-oriented protocol that provides error reporting, data prioritization, and retransmission of lost or erroneous packets. In this scenario, the TCP layer accepts the data stream and segments it, passing the segments to the IP layer for routing. The IP layer receives the segmented data, resolves error conditions, and reorders the segments as needed. Further, the IP layer routes the segmented data, resolves error conditions, and presents the data to the TCP layer for reordering. This TCP / IP protocol is particularly useful for reliable transmission of data that must be correct (e.g., transmission of a specific still image) or for retrieving or receiving configuration files.
[0027] Alternatively or additionally, a low-overhead protocol that does not provide retransmission or error correction features can be used, for example, discarding and not retransmitting packets containing image data or other data that fail error checks (e.g., checksums or CRC (Cyclic Redundancy Check)). One candidate protocol is UDP / IP, which can be provided as part of the transmission control protocol stack, either as a replacement for or as a supplement to protocols that respond to transmission errors (e.g., TCP / IP). This UDP / IP protocol significantly reduces the overhead of error response protocols (e.g., packet headers contain less data) and is useful for streaming images at the fastest possible rate. Therefore, as described below, when an IP camera is set to stream images at the fastest possible rate, the camera can switch to a lower-overhead protocol (e.g., UDP / IP) provided as part of the transmission control protocol stack.
[0028] In all cases where Error Response TCP / IP is used as an exemplary Transmission Control Protocol, TCP / IP can be replaced by a lower-overhead protocol such as UDP / IP, especially on connections where packet or data loss is acceptable (e.g., to reduce data overhead and increase image streaming rates). Either Error Response TCP / IP or Lower-Overhead UDP / IP can be replaced by a successor protocol (i.e., an Internet protocol that follows Error Response TCP / IP or Lower-Overhead UDP / IP as the standard).
[0029] For the communication protocol to be used, IP device 110 needs to be provided with an IP address, which is a unique address identifying IP device 110 on local network 130. Here, IP stands for "Internet Protocol," which is a set of rules governing the format of data sent through local network 130. For this purpose, local network 130 may include a Dynamic Host Configuration Protocol (DHCP) server 132, which is a network server that automatically provides and assigns IP addresses, default gateways, and other network parameters to various devices connected to local network 130. DHCP server 132 relies on a standard protocol called Dynamic Host Configuration Protocol or DHCP to respond to broadcast queries made by various devices connected to local network 130. DHCP server 132 assigns non-repeating dynamic IP addresses to IP device 110. Here, DHCP server 132 can automatically assign IP addresses and subnet addresses to IP device 110 using a zero-configuration scheme, which enables the automatic configuration of network settings for IP device 110. For example, if the effective IP address pool of local network 130 is from 192.168.1.1 to 192.168.1.255, and the default subnet address is 255.255.255.0, then DHCP server 132 can randomly assign an IP address (e.g., 192.168.1.241) to IP device 110 from the effective IP address pool, with a subnet address of 255.255.255.0.
[0030] According to embodiments of this disclosure, similarly... Figure 1 As shown, IP device 110 includes a boot controller 112 and an IP address controller 114. As used herein, the term "controller" should be understood under the statutory subject matter of 35 USC §101 to constitute hardware circuitry, such as a CCD, CMOS, SoC, ASIC, FPGA, a processor or microprocessor configured for a particular desired function (controller), or a communication module containing hardware such as a transmitter, receiver, or transceiver, or a non-transitory medium comprising machine-executable code loaded into and executed by the hardware for operation, and not itself constituting software. Furthermore, the controller described herein is hardware that includes components, such as a processor or microprocessor configured for operation by the algorithms shown in the flowchart and described herein.
[0031] Alternatively or additionally, the boot controller 112 and the IP address controller 114 may be in the form of software modules implemented in the IP device 110. As used herein, the term "module" may refer to a unit that includes, for example, one or more combinations of hardware, software, and firmware. The term "module" may be used interchangeably with terms such as "component" and "circuit." A "module" may be the smallest unit of integrated components, or may be a portion thereof. A "module" may be the smallest unit or a portion thereof for performing one or more functions. A "module" may be implemented mechanically or electronically. According to various embodiments of the present disclosure, at least a portion of an apparatus (e.g., a module or its functionality) or method (e.g., operation) according to various embodiments of the present disclosure may be implemented as instructions stored in a computer-readable non-transitory storage medium in the form of a programmable module.
[0032] In this document, boot controller 112 is responsible for completing the boot process of IP device 110. The boot process is essentially the process of initiating IP device 110 when it is first powered on and loading the operating system into its main memory, thus preparing IP device 110 to perform its operations. In this configuration, boot controller 112 is configured to enable DHCP for IP device 110, enabling a dynamic IP address to be assigned to IP device 110 by DHCP server 132 via local network 130 during its boot process. That is, in this embodiment, a dynamic IP address is assigned to IP device 110 during the boot process itself. As used herein, boot controller 112 is also configured to generate a boot signal upon completion of the boot process of IP device 110. In this document, the boot signal indicates the completion of the boot process, thereby indicating that a dynamic IP address may have been assigned to IP device 110 (assuming DHCP server 132 is available to assign dynamic IP addresses to IP devices).
[0033] In one embodiment, if no dynamic IP address is assigned to IP device 110 upon completion of the boot process, the boot controller 112 is configured to wait for a predetermined waiting time before generating a boot signal so that the DHCP server 132 can assign a dynamic IP address to IP device 110. That is, if no dynamic IP address is assigned to IP device 110 upon completion of the boot process, the boot controller waits for a predetermined waiting time before confirming the completion of the boot process as indicated by generating a boot signal. In this embodiment, the predetermined waiting time varies between 5 seconds and 500 seconds. In one example, the predetermined waiting time is one of the following: 5 seconds, 50 seconds, 100 seconds, 200 seconds, 300 seconds, 400 seconds, or 500 seconds. It is understood that the predetermined waiting time is used to ensure that there is sufficient time for the DHCP server 132 to assign a dynamic IP address to IP device 110, such as in the event of network connectivity problems and / or network congestion problems, and to compensate for them.
[0034] Furthermore, IP address controller 114 is responsible for ensuring the proper allocation of IP addresses to IP device 110. To this end, IP address controller 114 is first configured to obtain a dynamic IP address assigned to IP device 110 by DHCP server 132 in response to a boot signal from boot controller 112. That is, upon receiving a boot signal indicating the completion of the boot process and the possible assignment of a dynamic IP address to IP device 110 by DHCP server 132, IP address controller 114 obtains the dynamic IP address assigned to IP device 110. IP address controller 114 is also configured to check whether a static IP address has been set for IP device 110. As discussed, sometimes a customer may wish (or need) to set a static IP address for IP device 110 so that the customer knows the IP address of IP device 110 on local network 130 at any given time for reliable connection, thereby enabling easy access to IP device 110 from customer device 120 (e.g., by simply entering the set static IP address as a URL into a browser, etc., on customer device 120). Therefore, if a static IP address has already been set for IP device 110, IP address controller 114 then obtains the static IP address set for IP device.
[0035] Subsequently, IP address controller 114 is configured to determine whether the dynamic IP address and the static IP address are in the same subnet of local network 130. That is, it checks whether the static IP address set for IP device 110 is in the same subnet of local network 130 as the dynamic IP address assigned to it. As can be understood, the assigned dynamic IP address can always be in the correct subnet of local network 130 because it is assigned by DHCP server 132 of local network 130; however, it is possible that the static IP address set for IP device 110 may be entered incorrectly (when the customer manually configures IP device 110) and may be outside the subnet of local network 130. For example, if the valid IP address pool of local network 130 is from 192.168.1.1 to 192.168.1.255, and the static IP address of IP device 110 may have been set to 192.168.0.123 (while, for example, a customer might want to enter 192.168.1.123 as the static IP address), then in this case, the static IP address will be outside the subnet of local network 130. Now, if IP device 110 may have used an incorrectly configured static IP address, then IP device 110 will become unreachable from local network 130 for customer device 120.
[0036] In this embodiment, the IP address controller 114 is configured to implement the static IP address set for IP device 110 when both the dynamic IP address and the static IP address are in the same subnet of the local network 130. That is, if the static IP address set for IP device 110 is in the same subnet of the local network 130 as the dynamic IP address assigned to it by the DHCP server 132, then the set static IP address can be considered usable for IP device 110 without the risk that IP device 110 becomes unreachable from the local network 130 for client device 120 (as discussed in the preceding paragraphs). It is understood that in this case, the static IP address set for IP device 110 is preferred over the dynamic IP address assigned to it by the DHCP server 132 because the static IP address may be preferred by the client and / or easier for the client to remember; for example, 192.168.1.123 is set by the client compared to 192.168.1.241 being automatically assigned to IP device 110 (where “123” is easier to remember than “241”). Therefore, if the IP address controller 114 confirms that the set static IP address is valid (i.e., when the static IP address set for IP device 110 is in the same subnet of local network 130 as the dynamic IP address assigned to it by DHCP server 132), then the set static IP address takes precedence over the assigned dynamic IP address for IP device 110.
[0037] On the other hand, IP address controller 114 is configured to assign a dynamic IP address to IP device 110 when the dynamic IP address and the static IP address are not in the same subnet of local network 130. That is, if the static IP address set for IP device 110 is not in the same subnet of local network 130 as the dynamic IP address assigned to it by DHCP server 132, then it can be assumed that using the set static IP address may cause IP device 110 to become unreachable from local network 130 for client device 120 (as discussed in the preceding paragraphs). It is understood that in this case, the dynamic IP address assigned to IP device 110 by DHCP server 132 is preferred over the static IP address set for it, in order to avoid the risk that IP device 110 will become unreachable from local network 130 for client device 120. Therefore, if IP address controller 114 determines that the set static IP address is not in the same subnet of local network 130, then the dynamic IP address assigned by DHCP server 132 is preferred over the static IP address set for IP device 110.
[0038] In one embodiment, if no dynamic IP address is assigned to IP device 110 after a predetermined waiting time has elapsed, boot controller 112 is configured to generate a boot signal with empty dynamic IP address information. Further, in this case, IP address controller 114 is configured to implement the static IP address set for IP device 110 in response to the boot signal with empty dynamic IP address information. That is, if no dynamic IP address is assigned to IP device 110 even after the predetermined waiting time has elapsed, then it can be assumed that DHCP server 132 may be unresponsive and / or unreachable, and in this case, a static IP address (if set) is used regardless of whether the static IP address is in a subnet of local network 130. Doing so (i.e., using the set static IP address in any case) allows at least some IP addresses to be provided to IP device 110, allowing IP device 110 to attempt to connect to local network 130.
[0039] refer to Figure 2 The diagram illustrates a flowchart of an embodiment of the present disclosure, illustrating steps involved in a method 200 for configuring an Internet Protocol (IP) device (such as IP device 110) to be discoverable by a client device (such as client device 120) via a local network (such as local network 130). As shown, method 200 includes steps 202, 204, 206, 208, and 210. The listed steps 202, 204, 206, 208, and 210 are not necessarily performed in a specific order.
[0040] In step 202, method 200 includes obtaining a dynamic IP address assigned to IP device 110 upon completion of the boot process of IP device 110. Herein, DHCP server 132 assigns a non-repeating dynamic IP address to IP device 110. DHCP server 132 can automatically assign IP address and subnet address to IP device 110 using a zero-configuration scheme that enables automatic configuration of the network configuration of IP device 110.
[0041] In step 204, method 200 further includes checking whether a static IP address has been set for IP device 110. In this non-limiting embodiment, IP address controller 114 is also configured to check whether a static IP address has been set for IP device 110. As discussed, sometimes a customer may wish (or need) to set a static IP address for IP device 110 so that the customer knows the IP address of IP device 110 on local network 130 at any given time for reliable connection, thereby enabling easy access to IP device 110 from customer device 120 (e.g., by simply entering the set static IP address as a URL into a browser, etc., on customer device 120). Therefore, if a static IP address has already been set for IP device 110, IP address controller 114 then retrieves the static IP address set for the IP device.
[0042] In step 206, method 200 further includes determining whether the dynamic IP address and the static IP address are in the same subnet of the local network. In this non-limiting embodiment, the IP address controller 114 is configured to determine whether the dynamic IP address and the static IP address are in the same subnet of the local network 130. That is, it checks whether the static IP address set for IP device 110 is in the same subnet of the local network 130 as the dynamic IP address assigned to it. As can be understood, the assigned dynamic IP address can always be in the correct subnet of the local network 130 because it is assigned by the DHCP server 132 of the local network 130; however, it is possible that the static IP address set for IP device 110 may be entered incorrectly (when the customer manually configures IP device 110) and may be outside the subnet of the local network 130. For example, if the valid IP address pool of local network 130 is from 192.168.1.1 to 192.168.1.255, and the static IP address of IP device 110 may have been set to 192.168.0.123 (while, for example, a customer might want to enter 192.168.1.123 as the static IP address), then in this case, the static IP address will be outside the subnet of local network 130. Now, if IP device 110 may have used an incorrectly configured static IP address, then IP device 110 will become unreachable from local network 130 for customer device 120.
[0043] In step 208, method 200 further includes implementing the static IP address set for the IP device when the dynamic IP address and the static IP address are in the same subnet of the local network. In this non-limiting embodiment, IP address controller 114 is configured to implement the static IP address set for IP device 110 when the dynamic IP address and the static IP address are in the same subnet of the local network 130. That is, if the static IP address set for IP device 110 is in the same subnet of the local network 130 as the dynamic IP address assigned to it by DHCP server 132, then it can be assumed that the set static IP address can be used for IP device 110 without the risk that IP device 110 becomes unreachable from the local network 130 for client device 120 (as discussed in the preceding paragraphs). It is understood that in the aforementioned situation, a static IP address set for IP device 110 is preferred over a dynamic IP address assigned to it by DHCP server 132, because a static IP address may be preferred by the customer and / or easier for the customer to remember. For example, 192.168.1.123 is set by the customer compared to 192.168.1.241 being automatically assigned to IP device 110 (where "123" is easier to remember than "241"). Therefore, if IP address controller 114 confirms that the set static IP address is valid (i.e., when the static IP address set for IP device 110 and the dynamic IP address assigned to it by DHCP server 132 are in the same subnet of local network 130), then the set static IP address is preferred over the assigned dynamic IP address for IP device 110.
[0044] In step 210, method 200 includes: implementing the dynamic IP address assigned to the IP device when the dynamic IP address and the static IP address are not in the same subnet of the local network. In this non-limiting embodiment, IP address controller 114 is configured to implement the dynamic IP address assigned to IP device 110 when the dynamic IP address and the static IP address are not in the same subnet of local network 130. That is, if the static IP address set for IP device 110 is not in the same subnet of local network 130 as the dynamic IP address assigned to it by DHCP server 132, then it can be considered that using the set static IP address may cause IP device 110 to become unreachable from local network 130 for client device 120 (as discussed in the preceding paragraphs). It is understood that in this case, the dynamic IP address assigned to IP device 110 by DHCP server 132 is preferred over the static IP address set for it, in order to avoid the risk that IP device 110 will become unreachable from local network 130 for client device 120. Therefore, if the IP address controller 114 determines that the set static IP address is not in the same subnet of the local network 130, then the dynamic IP address assigned by the DHCP server 132 takes precedence over the static IP address set for the IP device 110.
[0045] In one or more embodiments, method 200 further includes configuring IP device 110 such that DHCP server 132 can assign it a dynamic IP address during its boot process. In this non-limiting embodiment, boot controller 112 is configured to enable DHCP for IP device 110, enabling DHCP server 132 to assign a dynamic IP address to IP device 110 via local network 130 during its boot process. That is, in this embodiment, a dynamic IP address for IP device 110 is assigned to IP device 110 during the boot process itself.
[0046] In one or more embodiments, if no dynamic IP address is assigned to the IP device upon completion of the boot process, method 200 further includes waiting for a predetermined waiting time before the boot process is completed, so that a dynamic IP address may be assigned to the IP device 110 by the DHCP server 132. In this non-limiting embodiment, the boot controller 112 is configured to wait for the predetermined waiting time before generating a boot signal, so that a dynamic IP address may be assigned to the IP device 110 by the DHCP server 132. That is, if no dynamic IP address is assigned to the IP device 110 upon completion of the boot process, the boot controller waits for the predetermined waiting time before confirming the completion of the boot process as indicated by generating a boot signal. In this embodiment, the predetermined waiting time varies between 5 seconds and 500 seconds. In one example, the predetermined waiting time is one of the following times: 5 seconds, 50 seconds, 100 seconds, 200 seconds, 300 seconds, 400 seconds, or 500 seconds. It is understood that the predetermined waiting time is used to ensure that there is sufficient time for the DHCP server 132 to assign a dynamic IP address to the IP device 110, such as in the event of network connectivity problems and / or network congestion problems, and to compensate for them.
[0047] In one or more embodiments, if no dynamic IP address is assigned to the IP device after a predetermined waiting time has elapsed, method 200 further includes implementing a static IP address set for the IP device 110. In this non-limiting embodiment, the boot controller 112 is configured to generate a boot signal with empty dynamic IP address information. Further, in this case, the IP address controller 114 is configured to implement a static IP address set for the IP device 110 in response to the boot signal with empty dynamic IP address information. That is, if no dynamic IP address is assigned to the IP device 110 even after the predetermined waiting time has elapsed, then the DHCP server 132 may be considered unresponsive and / or unreachable, and in this case, a static IP address (if set) is used regardless of whether the static IP address is in a subnet of the local network 130. Doing so (i.e., using the set static IP address in any case) allows at least some IP addresses to be provided to the IP device 110, allowing the IP device 110 to attempt to connect to the local network 130.
[0048] This disclosure provides a workflow that simplifies IP configuration of IP device 110 and is recoverable in extreme cases, such as when a user sets a static IP address outside the subnet address and then IP device 110 becomes unreachable. In this embodiment, when IP device 110 starts up, it searches for an automatically generated dynamic IP address from DHCP server 132 on the subnet. If the dynamic IP address and the pre-configured static IP address are in the same subnet, IP device 110 retains the static IP address. If the static IP address and the dynamic IP address do not match, IP device 110 retains the dynamic IP address assigned to it. Thus, client device 120 on the same subnet can always find IP device 110 (assuming IP device 110 and client device 120 are on the same local network 130).
[0049] The system 100 and method 200 of this disclosure can be implemented in hardware, and in part as firmware or as machine-executable computer code, thumbnail-driven computer code, coupled with hardware. The machine-executable computer code is stored on a non-transitory machine-readable medium, such as a CD-ROM, RAM, hard disk or magneto-optical disk, or floppy disk. The thumbnail-driven computer code is downloaded via a network, initially stored on a remote recording medium or a non-transitory machine-readable medium, and also stored on a local non-transitory recording medium for execution by hardware (such as at least one processor having an integrated circuit configured for operation), such that the methods described herein are loaded into hardware such as a general-purpose computer or a special-purpose processor, or into programmable or special-purpose hardware such as an ASIC or an FPGA. As understood in the art, a computer, processor, microprocessor controller, or programmable hardware includes storage components, such as RAM, ROM, flash memory, etc., which can store or receive machine-executable code or computer code that, when accessed and executed by the computer, processor, or hardware, implements the processing methods described herein. Furthermore, it will be recognized that when a general-purpose computer accesses the code used to implement the processes shown herein, the execution of the code transforms the general-purpose computer into a dedicated computer for performing the processes shown herein. Additionally, those skilled in the art will understand and appreciate that a “processor,” “microprocessor,” “controller,” or “control unit” constitutes the hardware in the claimed disclosure, which includes circuitry configured for operation. Under the broadest reasonable interpretation, the appended claims constitute compliance with 35 USC. The legal subject matter, and none of these elements are the software itself.
[0050] Modifications to the embodiments of the present disclosure described above are possible without departing from the scope of the disclosure as defined by the appended claims. Expressions such as “comprising,” “including,” “incorporated,” “having,” and “are” used to describe and claim this disclosure are intended to be interpreted in a non-exclusive manner, allowing for the presence of additional items, parts, or elements not explicitly described. References to the singular are also interpreted to refer to the plural.
Claims
1. A system for configuring an Internet Protocol (IP) device to be discoverable by a client device through a local network, the local network having a Dynamic Host Configuration Protocol (DHCP) server for allocating dynamic IP addresses, the system comprising: A boot controller for the IP device, the boot controller being configured to generate a boot signal upon completion of the boot process for the IP device; as well as An IP address controller for the IP device, the IP address controller being configured to: In response to the boot signal from the boot controller, a dynamic IP address assigned to the IP device by the DHCP server is obtained; Check whether a static IP address has been set for the IP device; Determine whether the dynamic IP address and the static IP address are in the same subnet of the local network; When the dynamic IP address and the static IP address are in the same subnet of the local network, the static IP address is implemented as set for the IP device; as well as The dynamic IP address is assigned to the IP device when the dynamic IP address and the static IP address are not in the same subnet of the local network.
2. The system of claim 1, wherein, The boot controller is configured to enable DHCP for the IP device, such that the DHCP server can assign the dynamic IP address to the IP device during the boot process of the IP device.
3. The system of claim 2, wherein, If the dynamic IP address is not assigned to the IP device when the boot process is completed, the boot controller is configured to wait for a predetermined waiting time before generating the boot signal so that the DHCP server can assign the dynamic IP address to the IP device.
4. The system of claim 3, wherein, The predetermined waiting time varies between 5 seconds and 500 seconds.
5. The system of claim 3, wherein, If no dynamic IP address is assigned to the IP device after the predetermined waiting time has elapsed, the boot controller is configured to generate a boot signal with empty dynamic IP address information, wherein the IP address controller is configured to implement the static IP address set for the IP device in response to the boot signal with the empty dynamic IP address information.
6. The system of claim 1, wherein, The IP device is an IP camera.
7. The system of claim 1, wherein, The local network implements the TCP / IP communication protocol, or the local network implements the UDP / IP communication protocol.
8. The system according to claim 1, wherein, The local network is a wired network or a wireless network or a combination thereof; or the local network is a local area network (LAN) or a wide area network (WAN).
9. A method for configuring an Internet Protocol (IP) device to be discoverable by a client device on a local network, the local network having a Dynamic Host Configuration Protocol (DHCP) server for allocating dynamic IP addresses, the method comprising: A dynamic IP address is assigned to the IP device during the boot process of the IP device. Check whether a static IP address has been set for the IP device; Determine whether the dynamic IP address and the static IP address are in the same subnet of the local network; When the dynamic IP address and the static IP address are in the same subnet of the local network, the static IP address is implemented as set for the IP device; as well as The dynamic IP address is assigned to the IP device when the dynamic IP address and the static IP address are not in the same subnet of the local network.
10. An Internet Protocol (IP) device configured to be discoverable by a client device via a local network, the local network having a Dynamic Host Configuration Protocol (DHCP) server for allocating dynamic IP addresses, the IP device comprising: A boot controller is configured to generate a boot signal when the boot process for the IP device is completed; as well as The IP address controller is configured as follows: In response to the boot signal from the boot controller, a dynamic IP address assigned to the IP device by the DHCP server is obtained; Check whether a static IP address has been set for the IP device; Determine whether the dynamic IP address and the static IP address are in the same subnet of the local network; When the dynamic IP address and the static IP address are in the same subnet of the local network, the static IP address is implemented as set for the IP device; as well as The dynamic IP address is assigned to the IP device when the dynamic IP address and the static IP address are not in the same subnet of the local network.
Citation Information
Patent Citations
Perception-free authentication method and device
CN108055254A
Connectivity monitoring for data tunneling between network device and application server
CN110771097A