Impela, ngaziqonda izimfuneko zakho. Nansi indlela i-athikili yakho ethi โPHP Nokuphathwa Kwekheli Le-IPโ engabukeka kanje:
Ukusebenza namakheli e-IP emhlabeni wokuthuthukiswa kwewebhu kuwumkhuba ojwayelekile, ikakhulukazi uma usebenzisana nokulandelela komsebenzisi, ukusetha ukuqinisekiswa okusekelwe ku-IP, nokunye okuningi. Unjiniyela uyazi ukuthi kunezindlela eziningi zokulanda ikheli le-IP leklayenti, kodwa kunezinto eziyinkimbinkimbi ezihilelekile lapho kwakhiwa ngemuva kommeleli, njengoba kungase kubuyisele i-IP yeseva kune-IP yeklayenti. Yilapho amandla e-PHP engena khona, ehlinzeka ngezici ezakhelwe ngaphakathi zokusingatha izimo ezinjalo ngempumelelo.
Ukuqonda Ikheli le-IP ne-PHP
Ikheli Lephrothokholi Ye-inthanethi (noma Ikheli Le-IP) uchungechunge lwezinombolo oluhlukile oluhlukaniswe izikhathi ezikhomba ikhompuyutha ngayinye esebenzisa i-Internet Protocol ukuze ixhumane ngenethiwekhi. Ku-PHP, $ _SERVER iwukushintshashintsha kwe-superglobal, ephethe ulwazi mayelana nezihloko, indawo yombhalo, nezindlela. Ukuze ulande ikheli le-IP yesistimu, ungasebenzisa ngokuqondile i-$_SERVER['REMOTE_ADDR'], kodwa ingase ingawutholi njalo umphumela olindelekile, ikakhulukazi ezimeni lapho iklayenti lingemuva kweseva elibamba.
Isixazululo: Ukutholwa Kwekheli Le-IP Elinembile ku-PHP
Ukuze uthole ikheli le-IP elinembile leklayenti, ngisho noma singemva kweseva elibamba, singasebenzisa izihloko ze-HTTP_CLIENT_IP kanye ne-HTTP_X_FORWARDED_FOR eziqukethe ikheli le-IP langempela leklayenti. Kudingeka siqale sihlole lezi zihloko ukuze siqinisekise ukuthi ikheli le-IP aliphangwa umsebenzisi ononya.
Nakhu ukuhlukaniswa kwesinyathelo ngesinyathelo kwesixazululo sekhodi ye-PHP.
<?php function getUserIP(){ if(!empty($_SERVER['HTTP_CLIENT_IP'])){ // IP address from shared Internet $ip = $_SERVER['HTTP_CLIENT_IP']; }elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){ // IP address from proxy server $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; }else{ // IP address from remote address $ip = $_SERVER['REMOTE_ADDR']; } return $ip; } $userIP = getUserIP(); echo "User's IP: " . $userIP; ?>
Ukuchaza Ikhodi ye-PHP
Umsebenzi we-getUserIp ku-PHP ihlose ukuthola ikheli le-IP leklayenti ngokuqala ngokuhlola unhlokweni we-HTTP_CLIENT_IP. Lokhu kuvame ukuqukatha ikheli le-IP langempela leklayenti lapho kusetshenziswa isevisi ye-inthanethi eyabiwe. Uma lesi sihloko singenalutho, sizobe sesihlola isihloko esithi HTTP_X_FORWARDED_FOR, esingabamba ikheli le-IP langempela leklayenti elithunyelwe iseva elibamba.
- Uma zombili izihloko zingenalutho, zibuyela emuva kokuthi $_SERVER['REMOTE_ADDR'] ebuyisela ikheli le-IP leseva.
- Ngemva kokuthola ikheli lasesizindeni se-inthanethi, ikhodi bese iliphrinta ngesitatimende se-echo.
Le ndlela ingenye yezindlela ezithembeke kakhulu zokuthola ikheli le-IP lomsebenzisi ku-PHP. Kodwa-ke, khumbula ukuthi usathatha izinyathelo zokuphepha ukuze uvikele i-IP spoofing. Hlala uhlanze noma uqinisekise amakheli e-IP njengengxenye yephrothokholi yakho yokuvikela.