Paano Malalaman Ang Ip Ng Kliyente

Talaan ng mga Nilalaman:

Paano Malalaman Ang Ip Ng Kliyente
Paano Malalaman Ang Ip Ng Kliyente

Video: Paano Malalaman Ang Ip Ng Kliyente

Video: Paano Malalaman Ang Ip Ng Kliyente
Video: Paano malalaman ang IP ADDRESS ng iyong mobile phone 2024, Mayo
Anonim

Sa pamamagitan ng IP address ng isang bisita sa iyong site, marami kang malalaman tungkol sa kanya - bansa, lungsod, pangalan at email address ng Internet provider, atbp. Ngunit ang pangunahing halaga ay ang IP ay maaaring maglingkod bilang isang ID ng bisita para sa mga script sa panig ng server. Inilalarawan sa ibaba kung paano mo matutukoy ang IP address gamit ang PHP.

Paano malalaman ang ip ng kliyente
Paano malalaman ang ip ng kliyente

Kailangan iyon

Pangunahing kaalaman sa PHP

Panuto

Hakbang 1

Upang makuha ang IP address mula sa mga header na ipinadala sa server ng paghiling ng browser, gamitin ang pagpapaandar ng getenv. Binabasa nito ang mga halagang tinukoy dito mula sa mga variable ng kapaligiran. Ginagamit ang isang variable na pinangalanang REMOTE_ADDR upang iimbak ang IP address ng bisita. Gayunpaman, ang client ay maaaring gumamit ng isang proxy server, kung saan ang variable ay maglalaman ng address nito, at hindi ang nais mo. Maaari mong malaman na ang web surfer ay gumagamit ng isang intermediate IP sa pamamagitan ng pagtingin sa variable ng kapaligiran na tinatawag na HTTP_VIA. Ang lahat ng mga address ng mga proxy server na kasangkot sa kadena ay inilalagay dito, pinaghiwalay ng mga kuwit. Dapat ilagay ng mga tagapamagitan na server ang address ng bisita sa isang variable na pinangalanang HTTP_X_FORWARDED_FOR, ngunit ito ay ganap na nakasalalay sa mga setting ng proxy. Nangangahulugan ito na upang masakop ang maraming mga posibilidad ng pagtukoy ng IP address hangga't maaari, kailangan mong suriin ang mga nilalaman ng hindi bababa sa tatlong mga variable: REMOTE_ADDR, HTTP_X_FORWARDED_FOR, at mas mabuti ang

Hakbang 2

Maaari mong pagsamahin ang pagsuri sa lahat ng tatlong mga variable sa isang linya ng PHP code, halimbawa, tulad nito:

$ ipAddr = getenv ('HTTP_CLIENT_IP') o $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') o $ ipAddr = getenv ('REMOTE_ADDR');

Nakuha ang halaga ng IP address sa ganitong paraan, ipinapayong i-clear ito mula sa mga posibleng pagbaluktot at hindi kinakailangang mga character. Maaari kang gumamit ng isang regular na expression para dito:

$ ipAddr = trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));

Hakbang 3

Nananatili ito upang pagsamahin ang parehong mga linya ng code sa isang pag-andar:

pagpapaandar ng getIP () {

$ ipAddr = getenv ('HTTP_CLIENT_IP') o $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') o $ ipAddr = getenv ('REMOTE_ADDR');

return trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));

}

Inirerekumendang: