Kadalasan, ang IP address ng isang bisita sa site ay ginagamit upang makilala siya. Ngunit bukod dito, gamit ang IP, makakakuha ka ng maraming karagdagang impormasyon tungkol sa bisita - halimbawa, alamin ang kanyang Internet provider at heograpikong lokasyon. Sa pagsasagawa, ang mga script ng PHP sa panig ng server ay madalas na ginagamit upang kumuha ng mga IP address mula sa mga header ng kahilingan na ipinadala ng browser.
Kailangan iyon
Pangunahing kaalaman sa PHP
Panuto
Hakbang 1
Gumamit ng built-in na function ng getenv ng PHP upang mabasa ang mga IP address mula sa superglobal environment variable array. Sa pinakasimpleng kaso, sapat na upang basahin ang variable na pinangalanang REMOTE_ADDR. Ang kaukulang piraso ng PHP code ay maaaring ganito ang hitsura: $ userIP = getenv ('REMOTE_ADDR');
Hakbang 2
Bilang karagdagan sa variable ng REMOTE_ADDR na ipinadala sa kahilingan, suriin ang mga variable na HTTP_VIA at HTTP_X_FORWARDED_FOR. Kung gumagamit ang bisita ng isang proxy server, dapat na maitala ang intermediate address sa parehong mga variable - sa parehong HTTP_VIA at REMOTE_ADDR. Sa kasong ito, maaari mong subukang alamin ang totoong IP ng bisita sa pamamagitan ng HTTP_X_FORWARDED_FOR - dapat ilagay ng proxy server ang orihinal na address dito. Gayunpaman, hindi ito laging ginagawa, at ang gumagamit ay may pagkakataon na pumili ng isang "opaque" na proxy server na hindi magpapadala ng orihinal na IP ng bisita na nagpadala ng kahilingan. Sa anumang kaso, dapat kang gumamit ng maraming paraan hangga't maaari upang makuha ang orihinal na IP address sa iyong code sa pamamagitan ng pagdaragdag ng tseke para sa variable na
Hakbang 3
Nagtapos sa isang linya ng PHP code ng sunud-sunod na tseke ng tatlong variable ng kapaligiran, na maaaring naglalaman ng orihinal na IP address ng bisita. Maaari itong magawa, halimbawa, tulad nito: $ userIP = getenv ('HTTP_CLIENT_IP') O $ userIP = getenv ('HTTP_X_FORWARDED_FOR') O $ userIP = getenv ('REMOTE_ADDR');
Hakbang 4
Alisin ang mga sobrang character at iba pang "basura" mula sa nagresultang halaga ng IP na maaaring mapunta sa mga variable ng kapaligiran. Magagawa ito, halimbawa, gamit ang built-in na PHP function na TRIM at preg_replace: $ userIP = TRIM (spe_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));
Hakbang 5
Pagsamahin ang lahat ng code sa isang pasadyang pagpapaandar upang maaari kang mag-refer dito kaysa sa ulitin ang mga linya ng tseke at paglilinis nang paulit-ulit sa iba't ibang bahagi ng iyong mga script sa PHP. Halimbawa, tulad nito: FUNCTION getUserIP () {
$ userIP = getenv ('HTTP_CLIENT_IP') O $ userIP = getenv ('HTTP_X_FORWARDED_FOR') O $ userIP = getenv ('REMOTE_ADDR');
I-RETURN TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));
}