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 johndoe, ime vašeg primarnog hosta će biti johndoe.dyn.rs. Recimo da ste u kontrolnom panelu kreirali dodatn host: home.johndoe.dyn.rs.
Pored unosa kompletnog imena hosta, možete navesti samo kratko imen 4. nivoa. Ako želite da ažurirate svoj primarni host johndoe.dyn.rs, što je i najčešći slučaj, kao ime hosta možete takođe navesti samo - ili prazan string. Primer:

   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...