Πώς να μάθετε το Ip του πελάτη

Πίνακας περιεχομένων:

Πώς να μάθετε το Ip του πελάτη
Πώς να μάθετε το Ip του πελάτη

Βίντεο: Πώς να μάθετε το Ip του πελάτη

Βίντεο: Πώς να μάθετε το Ip του πελάτη
Βίντεο: Βίντεο 346 Πώς Να Αλλάζουμε Την Ip Μας 2024, Ενδέχεται
Anonim

Με τη διεύθυνση IP ενός επισκέπτη στον ιστότοπό σας, μπορείτε να μάθετε πολλά για αυτόν - χώρα, πόλη, όνομα και διεύθυνση email του παρόχου Διαδικτύου κ.λπ. Αλλά η κύρια τιμή είναι ότι το IP μπορεί να χρησιμεύσει ως αναγνωριστικό επισκέπτη για σενάρια από διακομιστή. Παρακάτω περιγράφεται πώς μπορείτε να προσδιορίσετε τη διεύθυνση IP χρησιμοποιώντας PHP.

Πώς να μάθετε το ip του πελάτη
Πώς να μάθετε το ip του πελάτη

Είναι απαραίτητο

Βασικές γνώσεις PHP

Οδηγίες

Βήμα 1

Για να εξαγάγετε τη διεύθυνση IP από τις κεφαλίδες που αποστέλλονται στον διακομιστή αιτήσεων προγράμματος περιήγησης, χρησιμοποιήστε τη συνάρτηση getenv. Διαβάζει τις τιμές που καθορίζονται από τις μεταβλητές περιβάλλοντος. Μια μεταβλητή με το όνομα REMOTE_ADDR χρησιμοποιείται για την αποθήκευση της διεύθυνσης IP του επισκέπτη. Ωστόσο, ο πελάτης μπορεί να χρησιμοποιήσει έναν διακομιστή μεσολάβησης, οπότε η μεταβλητή θα περιέχει τη διεύθυνσή της και όχι αυτή που θέλετε. Μπορείτε να μάθετε ότι το web surfer χρησιμοποιεί μια ενδιάμεση 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 = trim (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));

}

Συνιστάται: