Verificare ip cu fsockopen

Ai o întrebare legată de PHP? Incercăm să îi găsim soluţie. Sau poate doar vrei să publici un cod interesant.

Moderatori: Zamolxe, Moderatori


H-ash
PHPRomania Supporter
Mesaje: 11
Membru din: Mar Aug 07, 2007 4:33 pm

Mesajde H-ash » Vin Iun 04, 2010 12:32 am

"ping"-ul nu iti garanteaza existenta ip-ului; poti sa setezi un server (sau un router) sa nu raspunda la "ping".

cealalta varianta din linie de comanda e "telnet" (in windows), dar pentru ea iti trebuie portul la care stii ca ar trebui sa raspunda o aplicatie.
Acelasi lucru se intampla si in cazul "fsockopen", in php. Daca vrei sa verifici ca la ip-ul respectiv ruleaza un server web, incerci o conexiune pe 80 (e cel mai des folosit). Daca ai in cap alta aplicatie, te uiti pe ce port ruleaza standard si incerci cu respectivul. Altfel, nu prea ai cum sa vezi daca un IP "e folosit".

phpcode
PHPRomania Supporter
Mesaje: 9
Membru din: Dum Mai 30, 2010 2:55 am

Mesajde phpcode » Vin Iun 04, 2010 2:45 pm

Daca e cineva obsedat de securitate, poate sa isi ascunda prezenta si sa nu mai ai nici o metoda sa aflii daca exista sau nu.
Revenind la problema ta:
ping nu se poate face prin fsockopen pentru ca foloseste alt protocol de transport (icmp) decat cele recunoscute de fsockopen (TCP, UDP, SSL, TLS - poti vedea lista lor cu stream_get_transports.
Daca vrei sa faci un script php, asemeantor pingului, trebuie sa folosesti functiile de socket (trebuie sa le ai activate pe server) si sa creezi un socket cu:

sock = socket_create(AF_INET, SOCK_RAW, getprotobyname('icmp'));

Cauta "ping icmp php" pe google si o sa gasesti niste scripturi care simuleaza pingul

Avatar utilizator
lucki91
Senior Member
Mesaje: 272
Membru din: Dum Dec 07, 2008 1:31 pm
Localitate: Cluj-Napoca
Contact:

Mesajde lucki91 » Vin Iun 04, 2010 9:39 pm

Ok, mersi.


Înapoi la “Cod PHP”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 10 vizitatori