Ixazululiwe: i-ip yami kuphela

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&#91;'HTTP_CLIENT_IP'&#93;)){
        // IP address from shared Internet
        $ip = $_SERVER&#91;'HTTP_CLIENT_IP'&#93;;
    }elseif(!empty($_SERVER&#91;'HTTP_X_FORWARDED_FOR'&#93;)){
        // IP address from proxy server
        $ip = $_SERVER&#91;'HTTP_X_FORWARDED_FOR'&#93;;
    }else{
        // IP address from remote address
        $ip = $_SERVER&#91;'REMOTE_ADDR'&#93;;
    }
    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.

Okuthunyelwe okuhlobene:

Shiya amazwana