Update API Verzija 2
Detektovanje promene IP adrese
Da bi odredio da li je ažuriranje potrebno, klijent mora imati pouzdan metod detekcije svoje aktuelne IP adrese radi poređenja sa adresom prethodne promene. Postoje dva metoda:
Interni metod
Klijent može da odredi (samostalno ili na osnovu unosa korisnika) da je direktno povezan sa Internetom. Uređaj bi trebalo da ima javnu IP adresu, u kom slučaju je optimalno rešenje u pribavljanju tog podatka od samog operativnog sistema.
Web IP Detekcija (CheckIP)
Klijent može takođe ustanoviti (automatski ili na osnovu unosa korisnika) da nije direktno povezan sa Internetom, pri čemu je mrežnom interfejsu dodeljena privatna IP adresa (obično iz RFC 1918 opsega 10/8, 172.16/12, 192.168/16). U ovom slučaju, optimalni metod je upotreba web IP detekcije.
Za ove potrebe Dyn.rs nudi CheckIP servis koji mogu koristiti svi klijenti koji rade sa našim sistemom.
Update Zahtevi
Nakon detekcije promene IP adrese ili izmene konfiguracije od strane korisnika, klijent bi trebalo da izvrši ažuriranje. Ažuriranje se vrši putem standardizovanih i unapred definisanih HTTP zahteva. Sistem će uzvratiti odgovorom u čijem telu će biti odgovarajući povratni kod, koji bi klijent trebalo da analizira.
HTTP Zahtev
Server: | dyn.rs |
---|---|
URI: | /nic/update |
Metodi: | GET, POST |
HTTP Portovi: | 80, 8245 |
HTTPS Port: | 443 |
Zahtevi se mogu slati preko HTTP ili (TLS enkripcija) HTTPS protokola (preporučljivo).
Sve zahteve treba slati koristeći hostname servera dyn.rs
. Fiksno definisanje IP adrese u u kodu nije
prihvatljivo jer se taj podatak može u svakom trenutku izmeniti.
Naš interfejs za ažuriranje "sluša" na portovima 80
i 8245
za HTTP, i 443
za
HTTPS.
Port 8245
se može koristiti za zaobilaženje transparentnih HTTP proxy uređaja. Za uspešnu operaciju
ažuriranja nije potrebno otvarati bilo koji ulazni port (ili dozvoljavati dolazni ICMP saobraćaj).
Primeri
Ovi primeri su prikazani samo u cilju boljeg razumevanja procesa ažuriranja.
Autentifikacija u URL adresi
Za web čitače ili softverske alatke (fetch, curl, lwp-request) koji mogu da parsiraju autentifikacionu sekciju u okviru URL-a.
https://{username}:{password}@dyn.rs/nic/update?hostname={hostname}&myip={IP Address}
Curl primer u komandnoj liniji
curl -ks -u {username}:{password} "https://dyn.rs/nic/update/?hostname={hostname}&myip={IP Address}"
HTTP GET Zahtev
Kompletan HTTP zahtev bi trebalo da izgleda kao što sledi. Obratite pažnju na to da postoji minimalni skup zaglavlja. Zahtev treba završiti slanjem jedne prazne linije.
base-64-authorization treba zameniti sa Base64 enkodiranim stringom username:password .
GET /nic/update?hostname=yourhostname&myip=ipaddress HTTP/1.0 Host: dyn.rs Authorization: Basic base-64-authorization User-Agent: Company - Device - Version Number
NApominjemo da su i GET i POST zahtevi dozvoljeni i da će biti ravnopravno procesirani.
Parametri
Polje | Opis | Dodatne informacije |
---|---|---|
hostname |
Ime hosta (sa ili bez domena) koje treba ažurirati. Ovo je obavezan parametar. | Host će biti ažuriran informacijom o IP adresi, nakon ćega će biti vraćen jedinstvenipovratni kod.
Na primer, ako je vaše korisničko ime hostname=johndoe.dyn.rs or hostname=- or hostname=Da ažurirate host 4. nivoa, možete ga u yahtevu definisati na sledeće načine: hostname=home.johndoe.dyn.rs or hostname=home |
myip |
IPv4 or IPv6 adresa za ažuriranje. | Ako ovaj parametar nije naveden, biće iskorišćena najadekvatnija IP adresa koju server može da odredi (neki proxy sistemi prosleđuju IP adresu u zaglavlju, što naš server detektuje). U slučaju da format IP adrese navedene u zahtevu nije valudan, podatak će biti ignorisan i zamenjen adresom sa koje zahtev dolazi. |
Povratni kodovi
Pri slanju zahteva za ažuriranje , odgovor servera je jedan od kratkih povratnih kodova opisanih u nastavku, nakon koga sledi jedan prazan ili TAB karakter, a u nastavku, do kraja linije, odgovarajuća opisna poruka. U slučaju greške, klijent bi trebalo da prikaže opisnu poruku korisniku. Svi povratni kodovi se vraćaju u telu HTTP odgovora, uz odgovarajući HTTP kod u zaglavlju koji indikuje uspeh (2xx), grešku sa strane klijenta (4xx) ili grešku na serveru (5xx)..
Tipovi zahteva i odgovora
SUCCESS: |
Uspešno ažuriranje |
---|---|
INFO: |
Manje relevantna greška, na primer kod pokušaja ažuriranja gde je IP adresa u DNS-u ista kao u zahtevu. |
ERROR: |
Greška koju bi verovatno trebalo prikazati korisniku, na primer kod neuspele autorizacije, suspenzije naloga, itd... |