Feem ntau, tus IP chaw nyob ntawm tus xaib qhua yog siv los txheeb xyuas nws. Tab sis dhau ntawm qhov no, siv tus IP, koj tuaj yeem tau txais ntau cov ntaub ntawv ntxiv ntsig txog tus qhua - piv txwv, nrhiav nws tus muab kev pabcuam hauv Internet thiab thaj chaw. Hauv kev coj ua, server-sab PHP scripts yog feem ntau siv rau extract IP chaw nyob los ntawm kev thov headers xa los ntawm qhov browser.
Nws yog qhov tsim nyog
Kev paub yooj yim ntawm PHP
Cov Lus Qhia
Kauj ruam 1
Siv PHP's built-in getenv muaj nuj nqi los nyeem cov IP chaw nyob los ntawm superglobal ib puag ncig nce mus nce los array. Hauv rooj plaub yooj yim, nws yuav txaus los nyeem cov nceb hu ua REMOTE_ADDR. Qhov sib thooj ntawm PHP code yuav zoo li qhov no: $ userIP = getenv ('REMOTE_ADDR');
Kauj ruam 2
Ntxiv rau REMOTE_ADDR kuj tsis paub meej xa hauv qhov kev thov, xyuas HTTP_VIA thiab HTTP_X_FORWARDED_FOR hloov pauv. Yog tias tus qhua siv tus neeg rau zaub mov siv npe, tom qab ntawd qhov chaw nyob nruab nrab yuav tsum tau sau rau ob qho hloov - hauv HTTP_VIA thiab REMOTE_ADDR. Hauv qhov no, koj tuaj yeem sim nrhiav tus IP tiag ntawm tus qhua los ntawm HTTP_X_FORWARDED_FOR - tus neeg rau zaub mov npe yuav tsum muab lub chaw nyob qub rau nws. Txawm li cas los xij, qhov no tsis tas ua tas li, thiab tus neeg siv muaj lub sijhawm los xaiv "opaque" proxy server uas tsis xa cov IP qub ntawm tus qhua uas xa daim ntawv thov. Nyob rau hauv txhua rooj plaub, koj yuav tsum siv ntau txoj hauv kev muaj peev xwm kom tau tus thawj IP chaw nyob hauv koj cov cai los ntawm kev ntxiv ib daim tshev rau HTTP_CLIENT_IP kuj sib txawv thiab.
Kauj ruam 3
Concatenate nyob rau hauv ib kab ntawm PHP code cov kab ke ntawm peb qhov chaw ib puag ncig, uas yuav muaj tus thawj IP chaw nyob ntawm tus qhua. Qhov no tuaj yeem ua tiav, piv txwv li, zoo li qhov no: $ userIP = getenv ('HTTP_CLIENT_IP') LOS YOG $ userIP = getenv ('HTTP_X_FORWARDED_FOR') LOS YOG $ userIP = getenv ('REMOTE_ADDR');
Kauj ruam 4
Tshem tawm cov cim ntxiv thiab lwm qhov "khib nyiab" los ntawm txiaj ntsig IP txiaj ntsig uas yuav nkag mus rau hauv ib puag ncig hloov pauv. Qhov no tuaj yeem ua tiav, piv txwv li, siv tus lej ntawm PHP ua haujlwm TRIM thiab preg_replace: $ userIP = TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));
Kauj ruam 5
Ua ke tag nrho cov cai rau hauv ib qho kev cai ua kom koj tuaj yeem xa mus rau nws es tsis txhob rov ua dua daim tshev thiab tu txhua qhov ntawm ntau qhov ntawm koj cov ntawv PHP. Piv txwv, zoo li qhov no: FUNCTION getUserIP () {
$ userIP = getenv ('HTTP_CLIENT_IP') LOS YOG $ userIP = getenv ('HTTP_X_FORWARDED_FOR') LOS YOG $ userIP = getenv ('REMOTE_ADDR');
ROV QAB TAWG (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP);
}