ßê ä³çíàòèñÿ ip â³äâ³äóâà÷à ñàéòó

Íàéá³ëüø ÷àñòî IP-àäðåñà â³äâ³äóâà÷à ñàéòó âèêîðèñòîâóþòü äëÿ éîãî ³äåíòèô³êàö³¿. Àëå ³ êð³ì öüîãî çà äîïîìîãîþ IP ìîæíà îòðèìàòè ÷èìàëî äîäàòêîâî¿ ³íôîðìàö³¿ ïðî â³äâ³äóâà÷à - íàïðèêëàä, ä³çíàòèñÿ éîãî ³íòåðíåò-ïðîâàéäåðà ³ ãåîãðàô³÷íå ì³ñöåçíàõîäæåííÿ. Íà ïðàêòèö³ íàé÷àñò³øå äëÿ âèëó÷åííÿ IP-àäðåñ ³ç çàãîëîâê³â çàïèò³â, ÿê³ ïðèñèëàþòüñÿ áðàóçåðîì, âèêîðèñòîâóþòü ñêðèïòè íà ñåðâåðí³é ìîâ³ PHP.
ßê ä³çíàòèñÿ ip â³äâ³äóâà÷à ñàéòó




Âàì çíàäîáèòüñÿ
  • Áàçîâå çíàííÿ ìîâè PHP
²íñòðóêö³ÿ
1
Âèêîðèñòîâóéòå âáóäîâàíó ôóíêö³þ getenv ìîâè PHP äëÿ ÷èòàííÿ IP-àäðåñ ç ñóïåðãëîáàëüíîãî ìàñèâó çì³ííèõ îòî÷åííÿ. Ó ñàìîìó ïðîñòîìó âèïàäêó áóäå äîñèòü ïðî÷èòàòè çì³ííó ç íàçâîþ REMOTE_ADDR. ³äïîâ³äíèé ôðàãìåíò PHP-êîäó ìîæå âèãëÿäàòè òàê: $ userIP = getenv ('REMOTE_ADDR') -


2
Ïåðåâ³ðÿéòå êð³ì íàä³ñëàíî¿ â çàïèò³ çì³ííî¿ REMOTE_ADDR ³ çì³íí³ HTTP_VIA ³ HTTP_X_FORWARDED_FOR. ßêùî â³äâ³äóâà÷ âèêîðèñòîâóº ïðîêñ³-ñåðâåð, òî ïðîì³æíèé àäðåñà ìຠáóòè çàïèñàíèé â îáèäâ³ çì³íí³ - ³ â HTTP_VIA, ³ â REMOTE_ADDR. Ó öüîìó âèïàäêó ä³çíàòèñÿ ðåàëüíèé IP â³äâ³äóâà÷à ìîæíà ñïðîáóâàòè ÷åðåç HTTP_X_FORWARDED_FOR - â íå¿ ïðîêñ³-ñåðâåð ïîâèíåí âì³ùóâàòè âèõ³äíèé àäðåñó. Îäíàê öå ðîáèòüñÿ äàëåêî íå çàâæäè, ³ êîðèñòóâà÷ ìຠìîæëèâ³ñòü ï³äáèðàòè «íåïðîçîðèé» ïðîêñ³-ñåðâåð, ùî íå ïåðåäຠâèõ³äíèé IP íàä³ñëàâ çàïèò â³äâ³äóâà÷à. Ó áóäü-ÿêîìó âèïàäêó âè ïîâèíí³ çàä³ÿòè ó ñâîºìó êîä³ ìàêñèìóì ñïîñîá³â îòðèìàòè âèõ³äíèé IP-àäðåñó, äîäàâøè ùå ³ ïåðåâ³ðêó çì³ííî¿ HTTP_CLIENT_IP.
3
Îá'ºäíàéòå â îäèí ðÿäîê PHP-êîäó ïîñë³äîâíó ïåðåâ³ðêó òðüîõ çì³ííèõ îòî÷åííÿ, ÿê³ ìîæóòü ì³ñòèòè âèõ³äíèé IP-àäðåñà â³äâ³äóâà÷à. Çðîáèòè öå ìîæíà, íàïðèêëàä, òàê: $ userIP = getenv ('HTTP_CLIENT_IP') OR $ userIP = getenv ('HTTP_X_FORWARDED_FOR') OR $ userIP = getenv ('REMOTE_ADDR') -
4
Âèäàë³òü ç îòðèìàíîãî çíà÷åííÿ IP çàéâ³ ñèìâîëè òà ³íøî¿ «ñì³òòÿ», ÿêèé ìîæå ïîòðàïèòè â çì³íí³ îòî÷åííÿ. Çðîáèòè öå ìîæíà, íàïðèêëàä, çàä³ÿâøè âáóäîâàí³ PHP-ôóíêö³¿ TRIM ³ preg_replace: $ userIP = TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP)) -
5
Îá'ºäíàéòå âåñü êîä â êîðèñòóâà÷à ôóíêö³þ, ùîá ìàòè ìîæëèâ³ñòü çâåðòàòèñÿ äî íå¿, à íå ïîâòîðþâàòè ðÿäêè ïåðåâ³ðêè òà î÷èùåííÿ çàíîâî â ð³çíèõ ÷àñòèíàõ PHP-ñêðèïò³â. Íàïðèêëàä, òàê: FUNCTION getUserIP () {
$ UserIP = getenv ('HTTP_CLIENT_IP') OR $ userIP = getenv ('HTTP_X_FORWARDED_FOR') OR $ userIP = getenv ('REMOTE_ADDR') -
RETURN TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP)) -
}
Ïåðåãëÿä³â: 3090

Óâàãà, ò³ëüêè ÑÜÎÃÎÄͲ!