Сайтқа кірушінің Ipін қалай білуге болады

Мазмұны:

Сайтқа кірушінің Ipін қалай білуге болады
Сайтқа кірушінің Ipін қалай білуге болады

Бейне: Сайтқа кірушінің Ipін қалай білуге болады

Бейне: Сайтқа кірушінің Ipін қалай білуге болады
Бейне: Видеорешебник сайтқа 2024, Мамыр
Anonim

Көбінесе сайтқа кірушінің IP-мекен-жайы оны анықтау үшін қолданылады. Сонымен қатар, IP көмегімен сіз келуші туралы көптеген қосымша ақпарат ала аласыз - мысалы, оның интернет-провайдерін және географиялық орнын біліңіз. Іс жүзінде серверлік PHP сценарийлері көбінесе браузер жіберген сұрау тақырыптарынан IP-адрестерді шығару үшін қолданылады.

Сайтқа кірушінің ipін қалай білуге болады
Сайтқа кірушінің ipін қалай білуге болады

Бұл қажетті

PHP туралы негізгі білім

Нұсқаулық

1-қадам

IP мекен-жайларын суперглобалды айнымалы массивтен оқу үшін PHP-ге ендірілген getenv функциясын қолданыңыз. Қарапайым жағдайда REMOTE_ADDR деп аталатын айнымалыны оқу жеткілікті болады. PHP кодының сәйкес бөлігі келесідей болуы мүмкін: $ userIP = getenv ('REMOTE_ADDR');

2-қадам

Сұрауда жіберілген REMOTE_ADDR айнымалысынан басқа, HTTP_VIA және HTTP_X_FORWARDED_FOR айнымалыларын тексеріңіз. Егер келуші прокси-серверді қолданса, онда аралық мекен-жай екі айнымалыда да жазылуы керек - HTTP_VIA және REMOTE_ADDR екеуінде. Бұл жағдайда HTTP_X_FORWARDED_FOR арқылы келушінің нақты IP-ін білуге тырысуға болады - прокси-сервер оған бастапқы мекен-жайын қоюы керек. Алайда, бұл әрдайым орындала бермейді және пайдаланушының сұранысты жіберген келушінің IP түпнұсқасын жібермейтін «мөлдір емес» прокси-серверді таңдауға мүмкіндігі бар. Қалай болғанда да, HTTP_CLIENT_IP айнымалысына чек қосу арқылы сіздің кодыңыздағы түпнұсқа IP мекенжайды алудың мүмкіндігінше көбірек тәсілдерін қолдануыңыз керек.

3-қадам

PHP кодының бір жолында үш қоршаған ортаның айнымалыларын дәйекті түрде тексеріңіз, онда келушінің бастапқы IP мекенжайы болуы мүмкін. Мұны, мысалы, келесідей жасауға болады: $ userIP = getenv ('HTTP_CLIENT_IP') НЕМЕСЕ $ userIP = getenv ('HTTP_X_FORWARDED_FOR') НЕМЕСЕ $ userIP = getenv ('REMOTE_ADDR');

4-қадам

Пайда болған IP мәнінен қоршаған орта айнымалыларына енуі мүмкін қосымша таңбаларды және басқа «қоқыстарды» алып тастаңыз. Мұны, мысалы PHP-дің TRIM және preg_replace функцияларының көмегімен жасауға болады: $ userIP = TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));

5-қадам

Барлық кодтарды PHP сценарийлерінің әр түрлі бөліктерінде тексеру және тазарту жолдарын бірнеше рет қайталаудың орнына оған сілтеме жасай алатындай етіп, теңшелетін функцияға біріктіріңіз. Мысалы, келесідей: FUNCTION getUserIP () {

$ userIP = getenv ('HTTP_CLIENT_IP') НЕМЕСЕ $ userIP = getenv ('HTTP_X_FORWARDED_FOR') НЕМЕСЕ $ userIP = getenv ('REMOTE_ADDR');

RETURN TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));

}

Ұсынылған: