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

Სარჩევი:

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

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

ვიდეო: როგორ გავარკვიოთ კლიენტის Ip
ვიდეო: How To Get a User's IP Address With JavaScript 2024, მაისი
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));

}

გირჩევთ: