Sending an Update
Dynamic updates are performed by making an HTTP request to one of the following URLs:
http://dynupdate.no-ip.com/nic/update
- - -
https://dynupdate.no-ip.com/nic/update
For update requests on HTTP, our interface listens on Ports 80 and 8245. Port 8245 is used to bypass HTTP proxies. If updating over HTTPS, our system listens on Port 443 It is not necessary to open any incoming ports for updating.
Authorization: base64-encoded-auth-string should be the
base64 encoding
of username:password.
username:password: Username and password associated with the hostnames that are to be updated. No-IP uses an email address as the username. Email addresses will be no longer than 50 characters. If using group username, our protocol uses special characters. Be sure that special characters can be accepted by your client.
An example update request string
http://username:password@dynupdate.no-ip.com/nic/update?hostname=mytest.example.com&myip=192.0.2.25
An example basic, raw HTTP header GET request
GET /nic/update?hostname=mytest.example.com&myip=192.0.2.25 HTTP/1.1
Host: dynupdate.no-ip.com
Authorization: Basic base64-encoded-auth-string
User-Agent: Company DeviceName-Model/FirmwareVersionNumber maintainer-contact@example.com
Important: Setting the Agent
When making an update it is important that your HTTP request include an HTTP User-Agent to help No-IP identify different clients that access the system. Clients that do not supply a certified and approved User-Agent risk being rate-limited or blocked from the system.
For hardware clients use the format:
User-Agent: Company DeviceName-Model/FirmwareVersionNumber maintainer-contact@example.com
For software clients use the format:
User-Agent: Company NameOfProgram/OSVersion-ReleaseVersion maintainer-contact@example.com
User Agent is important! It helps us identify what Update Client is accessing us. This allows us to provide better technical support to YOUR USERS.
URI Parameters
Field | Description |
hostname |
Required |
A comma separated list of hostnames and groups to be updated. Hostnames may be of type A, AAAA, or Port 80 Redirect.
The update response will be in the same order as this list. See Interpret Response.
Example:
hostname=host1.example.com,group1,host2.example.com
Hostnames may not always appear as a proper DNS name, for example group and special-use names.
|
myip |
Optional |
The IP address to which the hostnames will be set. If no IP address is supplied, the client IP address connecting to our system will be used.
Clients behind NAT, for example, would not need to supply an IP address.
If updating a dual-stacked DNS record (A and AAAA record for the same hostname), supply a comma separated list including your IPv4 and IPv6 address.
For example:
myip=192.0.2.25,2001:0db8::2e
|
myipv6 |
Optional |
The IPv6 address to which the hostnames with AAAA records will be set. If myipv6 is supplied, this will override the IPv6 address in the myip field.
This field is for compatibility with clients that do not allow IPv6 addresses in the myip field. The prefered method is to send the IPv6 address in the myip field.
|
offline |
Optional |
Sets the current hostname to offline status. Offline settings are an Enhanced / No-IP Plus feature. When offline mode is enabled, the hostname will use whatever offline method is selected on the No-IP.com website for that hostname. Possible values are YES and NO with default of NO. If an update request is performed on an offline hostname, the hostname is removed from the offline state. |
Your update client should only send a request to our system when it detects an IP address change. This can be done by monitoring the local interface for IP address changes, checking for DHCP lease renewals, monitoring the routers IP WAN ip address, or when none of those options are available use our ip detection system. If you are interested in using our IP detection system, please visit our IP Detection API page. This system is offered free of charge.
Next you MUST interpret the response code. Update clients that do not properly respond to update return codes risk being blocked from our system.
Previous Step: IntegrateNext Step: Interpret ResponseStep 4: Get Certified