Mara nyingi, anwani ya IP ya mgeni wa wavuti hutumiwa kumtambua. Lakini zaidi ya hii, kwa kutumia IP, unaweza kupata habari nyingi za ziada juu ya mgeni - kwa mfano, tafuta mtoa huduma wake wa mtandao na eneo la kijiografia. Katika mazoezi, maandishi ya kando ya seva ya PHP hutumiwa mara nyingi kutoa anwani za IP kutoka kwa vichwa vya ombi vilivyotumwa na kivinjari.
Ni muhimu
Ujuzi wa kimsingi wa PHP
Maagizo
Hatua ya 1
Tumia kazi ya kujengwa ya PHP kusoma anwani za IP kutoka kwa safu ya mazingira ya hali ya juu. Katika hali rahisi, itatosha kusoma anuwai iliyoitwa REMOTE_ADDR. Sehemu inayofanana ya nambari ya PHP inaweza kuonekana kama hii: $ userIP = getenv ('REMOTE_ADDR');
Hatua ya 2
Mbali na ubadilishaji wa REMOTE_ADDR uliotumwa katika ombi, angalia vigeuzi vya HTTP_VIA na HTTP_X_FORWARDED_FOR. Ikiwa mgeni anatumia seva ya proksi, basi anwani ya kati lazima irekodiwe katika vigeuzi vyote viwili - katika HTTP_VIA na REMOTE_ADDR. Katika kesi hii, unaweza kujaribu kujua IP halisi ya mgeni kupitia HTTP_X_FORWARDED_FOR - seva ya wakala lazima iweke anwani ya asili ndani yake. Walakini, hii haifanywi kila wakati, na mtumiaji ana nafasi ya kuchagua seva ya wakala ya "opaque" ambayo haitoi IP ya asili ya mgeni aliyetuma ombi. Kwa hali yoyote, unapaswa kutumia njia nyingi iwezekanavyo kupata anwani halisi ya IP kwenye nambari yako kwa kuongeza hundi ya ubadilishaji wa
Hatua ya 3
Jumuisha katika mstari mmoja wa nambari ya PHP angalia mfuatano wa anuwai ya mazingira, ambayo inaweza kuwa na anwani asili ya IP ya mgeni. Hii inaweza kufanywa, kwa mfano, kama hii:
Hatua ya 4
Ondoa herufi za ziada na "takataka" zingine kutoka kwa thamani inayosababishwa ya IP ambayo inaweza kuingia katika anuwai ya mazingira. Hii inaweza kufanywa, kwa mfano, kutumia kazi za PHP zilizojengwa TRIM na preg_replace: $ userIP = TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ mtumiajiIP));
Hatua ya 5
Unganisha nambari yote kwenye kazi ya kawaida ili uweze kuirejelea badala ya kurudia kukagua na kusafisha mistari mara kwa mara katika sehemu tofauti za hati zako za PHP. Kwa mfano, kama hii: FUNCTION getUserIP () {
$ userIP = getenv ('HTTP_CLIENT_IP') AU $ userIP = getenv ('HTTP_X_FORWARDED_FOR') AU $ userIP = getenv ('REMOTE_ADDR');
RUDISHA TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));
}