Hướng dẫn dùng _server http_client_ip trong PHP
Nhiều khi chúng ta cần lấy địa chỉ IP của người truy cập cho các mục đích khác nhau như bảo mật, huyển hướng khách truy cập đến trang khác, chặn / cấm khách truy cập.... Vậy để thu thập được địa chỉ IP của người dùng một cách dễ dàng trong PHP bằng biến $_SERVER . Cách đơn giản nhất để lấy địa chỉ IP của khách truy cập hiện tại trong PHP là sử dụng REMOTE_ADDR trong biến $_SERVER có sẵn trong PHP. Lấy địa chỉ IP của client$_SERVER ['REMOTE_ADDR'] - Nó trả về địa chỉ IP của người dùng hiện đang truy cập trang web. Ví dụ:
Kết quả :
Nhưng đôi khi REMOTE_ADDR không trả về địa chỉ IP của máy khách và lý do chính đằng sau là sử dụng proxy. Trong tình huống như vậy, chúng tôi sẽ thử một cách khác để lấy địa chỉ IP thực của người dùng trong PHP.
Sơ đồ lấy chương trình lấy địa chỉ IPSơ đồ cho chương trình trên sẽ giống như dưới đây. Lấy địa chỉ IP của websiteMột cách khác để lấy địa chỉ IP của bất kỳ trang web nào bằng URL của nó bằng gethostbyname(). Ví dụ:
Kết quả:
$ _SERVER là một biến toàn cục của PHP chứa thông tin về tiêu đề, đường dẫn và vị trí tập lệnh.
$_SERVER['SERVER_ADDR'] Returns IP address của host $_SERVER['SERVER_NAME'] Returns Hostname Server Chúc các bạn thành công. answer 1230 Dù bạn làm gì, hãy đảm bảo không tin tưởng dữ liệu được gửi từ khách hàng. Tuy nhiên,
họ có thể đứng sau một máy chủ proxy trong trường hợp proxy có thể đã đặt Điều này có nghĩa là nếu bạn sẽ lưu Nếu bạn định lưu IP vào cơ sở dữ liệu dưới dạng chuỗi, hãy đảm bảo bạn có không gian cho ít nhất 45 ký tự . IPv6 vẫn ở đây và những địa chỉ đó lớn hơn địa chỉ IPv4 cũ. (Lưu ý rằng IPv6 thường sử dụng tối đa 39 ký tự nhưng cũng có ký hiệu IPv6 đặc biệt cho các địa chỉ IPv4 mà ở dạng đầy đủ có thể lên tới 45 ký tự. Vì vậy, nếu bạn biết bạn đang làm gì, bạn có thể sử dụng 39 ký tự, nhưng nếu bạn chỉ muốn thiết lập và quên nó, sử dụng 45). 1230 hữu ích 5 bình luận chia sẻ answer 403
Có một số tiêu đề HTTP giống như Phải nói rằng, đây là một số mã mẫu:
Lưu ý của biên tập viên: Sử dụng đoạn mã trên có ý nghĩa bảo mật . Máy khách có thể đặt tất cả thông tin tiêu đề HTTP (nghĩa là Từ: http://roshanbh.com.np/2007/12/getting-real-ip-address-in-php.html 403 hữu ích 5 bình luận chia sẻ answer 193 193 hữu ích 5 bình luận chia sẻ answer 105 Dưới đây là một mẫu mã sạch hơn về một cách tốt để lấy địa chỉ IP của người dùng.
Đây là phiên bản ngắn hơn sử dụng toán tử elvis:
Đây là phiên bản sử dụng isset để xóa thông báo (cảm ơn bạn, @shasi kanth):
105 hữu ích 5 bình luận chia sẻ answer 86 Nó nên được chứa
trong 86 hữu ích 0 bình luận chia sẻ answer 50 Giải pháp yêu thích của tôi là cách Zend Framework 2 sử dụng. Nó cũng xem xét
Xem mã đầy đủ tại đây: https://raw.githubusercontent.com/zendframework/zend-http/master/src/PhpEnFE/RemoteAddress.php 50 hữu ích 5 bình luận chia sẻ answer 42 Có nhiều loại người dùng khác nhau đằng sau Internet, vì vậy chúng tôi muốn bắt địa chỉ IP từ các phần khác nhau. Những người đang có: 1. 2. 3. 4. Vì vậy, chúng ta có thể sử dụng chức năng kết hợp sau đây để lấy địa chỉ IP thực từ những người dùng đang xem ở các vị trí khác nhau,
42 hữu ích 1 bình luận chia sẻ answer 30 Sau đây là phương pháp tiên tiến nhất mà tôi đã tìm thấy và tôi đã thử một số phương pháp khác trong quá khứ. Nó là hợp lệ để đảm bảo có được địa chỉ IP của khách truy cập (nhưng xin lưu ý rằng bất kỳ hacker nào cũng có thể làm sai lệch địa chỉ IP một cách dễ dàng).
30 hữu ích 3 bình luận chia sẻ answer 27 Câu trả lời là sử dụng 27 hữu ích 0 bình luận chia sẻ answer 10 Như tất cả những người khác đã nói trước khi bạn có thể sử dụng Ngoài ra, nếu bạn cần thêm thông tin về người dùng, bạn có thể sử dụng điều này:
Thông
tin cụ thể hơn của khách hàng có trong $ clientDetails. Tôi đang sử dụng ipinfo.io để có thêm thông tin. 10 hữu ích 0 bình luận chia sẻ answer 9 Đây là phương pháp mà tôi sử dụng và nó xác nhận đầu vào IPv4 :
9 hữu ích 1 bình luận chia sẻ answer 9
9 hữu ích 5 bình luận chia sẻ answer 8 Tôi thích đoạn mã này:
8 hữu ích 4 bình luận chia sẻ answer 7 Vâng, điều này có thể được thực hiện đơn giản bằng cách sử dụng Đây Chỉ cần gán nó như thế này:
Hoặc sử dụng nó trực tiếp như 7 hữu ích 0 bình luận chia sẻ answer 7 Hãy thử cái này:
7 hữu ích 4 bình luận chia sẻ answer 4 Chức năng này nhỏ gọn và bạn có thể sử dụng nó ở mọi nơi. Nhưng! Đừng quên điều này! Trong loại chức năng hoặc khối mã này không có đảm bảo để ghi lại địa chỉ IP thực của người dùng vì một số người dùng có thể sử dụng proxy hoặc một cổng bảo mật khác để ẩn hoặc không thể theo dõi Hàm PHP:
Sử dụng:
4 hữu ích 0 bình luận chia sẻ answer 4 Hàm sau xác định tất cả các khả năng và trả về các giá trị theo định dạng được phân tách bằng dấu phẩy (ip, ip, v.v.). Nó cũng có chức năng xác thực tùy chọn là (tham số đầu tiên bị tắt theo mặc định) để xác thực địa chỉ IP dựa trên (phạm vi riêng tư và phạm vi dành riêng).
4 hữu ích 0 bình luận chia sẻ answer 3 Đoạn mã an toàn và cảnh báo để nhận địa chỉ IP:
3 hữu ích 0 bình luận chia sẻ answer 1
1 hữu ích 0 bình luận chia sẻ answer 1 Đây là phiên bản một lớp lấy địa chỉ IP của khách hàng:
Ghi chú:
1 hữu ích 0 bình luận chia sẻ answer 1 Chức năng này sẽ hoạt động như mong đợi
1 hữu ích 0 bình luận chia sẻ answer 0
Thí dụ:
0 hữu ích 1 bình luận chia sẻ answer 0 Đây là một lót đơn giản
CHỈNH SỬA: Mã ở trên có thể trả về các địa chỉ dành riêng (như 10.0.0.1), danh sách địa chỉ của tất cả các máy chủ proxy trên đường, v.v. Để xử lý các trường hợp này, hãy sử dụng mã sau:
0 hữu ích 0 bình luận chia sẻ answer 0 Giống như sau?
PS
Tất cả các tiêu đề bắt đầu bằng 'HTTP_' hoặc 'X-' có thể bị giả mạo, tương ứng là do người dùng xác định. Nếu bạn muốn theo dõi, hãy sử dụng cookie, v.v. 0 hữu ích 0 bình luận chia sẻ |