Cách Tìm Ra Ip Của Khách Hàng

Mục lục:

Cách Tìm Ra Ip Của Khách Hàng
Cách Tìm Ra Ip Của Khách Hàng

Video: Cách Tìm Ra Ip Của Khách Hàng

Video: Cách Tìm Ra Ip Của Khách Hàng
Video: Làm sao để tránh bị truy vết IP? 2024, Tháng mười hai
Anonim

Bằng địa chỉ IP của khách truy cập vào trang web của bạn, bạn có thể tìm hiểu khá nhiều thông tin về anh ta - quốc gia, thành phố, tên và địa chỉ email của nhà cung cấp Internet, v.v. Nhưng giá trị chính là IP có thể đóng vai trò là ID khách truy cập cho các tập lệnh phía máy chủ. Dưới đây là mô tả cách bạn có thể xác định địa chỉ IP bằng PHP.

Cách tìm ra ip của khách hàng
Cách tìm ra ip của khách hàng

Nó là cần thiết

Kiến thức cơ bản về PHP

Hướng dẫn

Bước 1

Để trích xuất địa chỉ IP từ các tiêu đề được gửi đến máy chủ yêu cầu của trình duyệt, hãy sử dụng hàm getenv. Nó đọc các giá trị được chỉ định cho nó từ các biến môi trường. Một biến có tên REMOTE_ADDR được sử dụng để lưu trữ địa chỉ IP của khách truy cập. Tuy nhiên, máy khách có thể sử dụng máy chủ proxy, trong trường hợp đó, biến sẽ chứa địa chỉ của nó chứ không phải địa chỉ bạn muốn. Bạn có thể phát hiện ra rằng người lướt web đang sử dụng IP trung gian bằng cách xem biến môi trường được gọi là HTTP_VIA. Tất cả địa chỉ của các máy chủ proxy liên quan đến chuỗi đều được đặt trong đó, phân tách bằng dấu phẩy. Máy chủ trung gian phải đặt địa chỉ của khách truy cập trong một biến có tên HTTP_X_FORWARDED_FOR, nhưng điều này hoàn toàn phụ thuộc vào cài đặt proxy. Điều này có nghĩa là để có nhiều khả năng xác định địa chỉ IP nhất có thể, bạn cần kiểm tra nội dung của ít nhất ba biến: REMOTE_ADDR, HTTP_X_FORWARDED_FOR và tốt nhất là

Bước 2

Bạn có thể kết hợp kiểm tra tất cả ba biến vào một dòng mã PHP, chẳng hạn như sau:

$ ipAddr = getenv ('HTTP_CLIENT_IP') hoặc $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') hoặc $ ipAddr = getenv ('REMOTE_ADDR');

Để có được giá trị của địa chỉ IP theo cách này, bạn nên xóa nó khỏi các biến dạng có thể xảy ra và các ký tự không cần thiết. Bạn có thể sử dụng một biểu thức chính quy cho điều này:

$ ipAddr = trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));

Bước 3

Nó vẫn là kết hợp cả hai dòng mã thành một chức năng:

hàm getIP () {

$ ipAddr = getenv ('HTTP_CLIENT_IP') hoặc $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') hoặc $ ipAddr = getenv ('REMOTE_ADDR');

return trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));

}

Đề xuất: