Die IP-adres van 'n besoeker word meestal gebruik om hom te identifiseer. Maar behalwe dit, met behulp van IP, kan u baie addisionele inligting oor die besoeker kry - vind byvoorbeeld sy internetverskaffer en geografiese ligging. In die praktyk word PHP-skrifte aan die bedienerkant meestal gebruik om IP-adresse te onttrek uit die opskrifte wat deur die blaaier gestuur word.
Dit is nodig
Basiese kennis van PHP
Instruksies
Stap 1
Gebruik PHP se ingeboude getenv-funksie om IP-adresse uit die superglobale omgewingsveranderlike skikking te lees. In die eenvoudigste geval is dit genoeg om die veranderlike genaamd REMOTE_ADDR te lees. Die ooreenstemmende stuk PHP-kode kan so lyk: $ userIP = getenv ('REMOTE_ADDR');
Stap 2
Benewens die REMOTE_ADDR-veranderlike wat in die versoek gestuur is, moet u die veranderlikes HTTP_VIA en HTTP_X_FORWARDED_FOR nagaan. As die besoeker 'n instaanbediener gebruik, moet die tussenadres in beide veranderlikes aangeteken word - in beide HTTP_VIA en REMOTE_ADDR. In hierdie geval kan u probeer om die regte IP van die besoeker uit te vind deur middel van HTTP_X_FORWARDED_FOR - die proxy-bediener moet die oorspronklike adres daarin plaas. Dit word egter nie altyd gedoen nie, en die gebruiker het die geleentheid om 'n "ondeursigtige" instaanbediener te kies wat nie die oorspronklike IP van die besoeker wat die versoek gestuur het, uitstuur nie. In elk geval moet u soveel moontlik maniere gebruik om die oorspronklike IP-adres in u kode te kry deur 'n tjek vir die HTTP_CLIENT_IP-veranderlike by te voeg.
Stap 3
Verbind 'n opeenvolgende tjek van drie omgewingsveranderlikes in een reël van PHP-kode, wat die oorspronklike IP-adres van die besoeker kan bevat. Dit kan byvoorbeeld soos volg gedoen word: $ userIP = getenv ('HTTP_CLIENT_IP') OF $ userIP = getenv ('HTTP_X_FORWARDED_FOR') OF $ userIP = getenv ('REMOTE_ADDR');
Stap 4
Verwyder ekstra karakters en ander "vullis" uit die resulterende IP-waarde wat in omgewingsveranderlikes kan kom. Dit kan byvoorbeeld gedoen word met behulp van die ingeboude PHP-funksies TRIM en preg_replace: $ userIP = TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));
Stap 5
Kombineer al die kode in 'n aangepaste funksie, sodat u daarna kan verwys in plaas van om die tjek- en opruimingslyne oor en oor in verskillende dele van u PHP-skrifte te herhaal. Byvoorbeeld, soos volg: FUNCTION getUserIP () {
$ userIP = getenv ('HTTP_CLIENT_IP') OF $ userIP = getenv ('HTTP_X_FORWARDED_FOR') OF $ userIP = getenv ('REMOTE_ADDR');
TRIM TERUG (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));
}