როგორ გავარკვიოთ კლიენტის Ip

როგორ გავარკვიოთ კლიენტის Ip
როგორ გავარკვიოთ კლიენტის Ip
Anonim

თქვენს საიტზე მყოფი სტუმრის IP მისამართით შეგიძლიათ გაეცნოთ საკმაოდ ბევრს მის შესახებ - ქვეყანა, ქალაქი, სახელი და ინტერნეტ პროვაიდერის ელექტრონული ფოსტის მისამართი და ა.შ. მაგრამ მთავარი მნიშვნელობა ის არის, რომ IP- ს შეუძლია ემსახუროს როგორც ვიზიტორის ID სერვერის სკრიპტებისთვის. ქვემოთ მოცემულია, თუ როგორ შეგიძლიათ განსაზღვროთ IP მისამართი PHP- ის გამოყენებით.

როგორ გავარკვიოთ კლიენტის ip
როგორ გავარკვიოთ კლიენტის ip

Ეს აუცილებელია

PHP- ის ძირითადი ცოდნა

ინსტრუქციები

Ნაბიჯი 1

ამოიღეთ IP მისამართი ბრაუზერის მოთხოვნის სერვერზე გაგზავნილი სათაურებიდან, გამოიყენეთ getenv ფუნქცია. იგი კითხულობს მისთვის მითითებულ მნიშვნელობებს გარემოს ცვლადებიდან. ცვლადი სახელად REMOTE_ADDR გამოიყენება ვიზიტორის IP მისამართის შესანახად. ამასთან, კლიენტს შეუძლია გამოიყენოს მარიონეტული სერვერი, ამ შემთხვევაში ცვლადი შეიცავს მის მისამართს და არა თქვენთვის სასურველს. შეგიძლიათ გაარკვიოთ, რომ ვებგვერდი იყენებს შუალედურ IP- ს, თუ გადავხედავთ გარემოს ცვლადს, რომელსაც ეწოდება HTTP_VIA. ჯაჭვში ჩართული მარიონეტული სერვერების ყველა მისამართი განთავსებულია მასში, გამოყოფილია მძიმით. შუალედურმა სერვერებმა სტუმრის მისამართი უნდა განათავსონ ცვლადში, სახელად HTTP_X_FORWARDED_FOR, მაგრამ ეს მთლიანად დამოკიდებულია მარიონეტული პარამეტრიდან. ეს ნიშნავს, რომ IP მისამართის განსაზღვრის რაც შეიძლება მეტი შესაძლებლობის დასაფარავად, თქვენ უნდა შეამოწმოთ მინიმუმ სამი ცვლადის შინაარსი: REMOTE_ADDR, HTTP_X_FORWARDED_FOR და სასურველია

ნაბიჯი 2

თქვენ შეგიძლიათ დააკავშიროთ სამივე ცვლადის PHP კოდის ერთ სტრიქონში, მაგალითად, ასე:

$ ipAddr = getenv ('HTTP_CLIENT_IP') ან $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') ან $ ipAddr = getenv ('REMOTE_ADDR');

ამ გზით IP მისამართის ღირებულების მიღების შემდეგ, სასურველია გაასუფთაოთ იგი შესაძლო დამახინჯებებისა და არასაჭირო სიმბოლოებისგან. ამისათვის შეგიძლიათ გამოიყენოთ რეგულარული გამოხატვა:

$ ipAddr = მორთვა (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));

ნაბიჯი 3

რჩება კოდის ორივე ხაზის გაერთიანება ერთ ფუნქციაში:

ფუნქცია getIP () {

$ ipAddr = getenv ('HTTP_CLIENT_IP') ან $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') ან $ ipAddr = getenv ('REMOTE_ADDR');

დაბრუნების მორთვა (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));

}

გირჩევთ: