Tôi đang sử dụng xampp trên máy chủ cục bộ và khi tôi sử dụng $_SERVER["REMOTE_ADDR"]
, nó trả về ::1
(cũng thực hiện điều này trong phpinfo()
). tại sao nó làm vậy? Tôi muốn nó trả về một địa chỉ IP bình thường như 127.0.0.1. Hệ điều hành của tôi là windows vista.remote_addr không trả lại địa chỉ IPv4
Trả lời
::1
là IPv6 address và viết tắt cho 0:0:0:0:0:0:0:1
là loopback address cho máy cục bộ. Vì vậy, ::1
chỉ giống như 127.0.0.1
chỉ qua IPv6 thay vì IPv4.
Apache của bạn đang nghe theo số IPv6 kết nối theo mặc định (::1
là local loopback). Nếu bạn thực sự chỉ muốn IPv4, hãy thử tắt vô hiệu hóa các kết nối IPv6 trong cấu hình apache của bạn:
Nếu bạn muốn Apache chỉ xử lý các kết nối IPv4, bất kể nền tảng và APR của bạn sẽ hỗ trợ, hãy chỉ định địa chỉ IPv4 trên tất cả nghe chỉ thị, như trong ví dụ sau:
Listen 0.0.0.0:80
Listen 192.170.2.1:80
Bạn phải tắt hỗ trợ IPv6 trong hệ điều hành của bạn để apache ngừng hiển thị các địa chỉ định dạng IPv6 này, khi bạn muốn định dạng IPv4. Tôi đã vô hiệu hóa hỗ trợ IPv6 và hoạt động của nó như mong đợi hiện nay.
Các hướng dẫn sau đây để vô hiệu hóa IPv6 có thể là hữu ích, http://support.microsoft.com/kb/929852
Chỉ cần để bạn biết tôi làm theo các bước được mô tả trong các liên kết ở trên và tôi đang sử dụng Windows 7 không Vista mặc dù tôi nghi ngờ có thể là bất kỳ hoặc nhiều sự khác biệt.
Gần đây tôi đã gặp sự cố này, mặc dù tôi không bao giờ nhớ bật hỗ trợ ipv6 trên hệ thống của mình, có thể được thực hiện bởi Microsoft trong một bản cập nhật của họ (có thể).
Đi tới bảng điều khiển XAMPP. Mở Apache (httpd.conf) có thể được tìm thấy trong hàng đầu tiên, tức là các Hành động của Mô-đun Apache. Đi để nghe (bạn có thể Ctrl + F này) trong đó cho thấy 80 (nếu bạn có ipv6 hoạt động) thay đổi nó để nghe 0.0.0.0:80
và bạn đã làm xong. Khởi động lại Apache và bạn sẽ không còn thấy ::1
trong trình duyệt của mình nữa. Điều này vui vẻ sẽ trả lại máy chủ cục bộ của bạn tức là 127.0.0.1
- 1. IPv4 địa chỉ từ xa trong WCF
- 2. inet_aton bình thường hóa địa chỉ IPv4
- 3. $ _SERVER ['REMOTE_ADDR'] không cung cấp địa chỉ IP phù hợp
- 4. REMOTE_ADDR và IPv6 trong PHP
- 5. Đại diện cho địa chỉ IPv4/IPv6 trong Oracle
- 6. Loại dữ liệu trường PostgreSQL cho địa chỉ IPv4
- 7. Giới hạn Google Địa điểm tự động hoàn tất để chỉ trả lại địa chỉ
- 8. Net IPAddress IPv4
- 9. Thêm địa chỉ liên kết địa chỉ
- 10. Java regex để chấp nhận tên máy chủ, địa chỉ IPv4 hoặc địa chỉ IPv6 hợp lệ
- 11. lấy địa chỉ IPv4 của máy tính bằng cách sử dụng VB.net
- 12. Trả lại địa chỉ IPv6 từ máy chủ DNS trong C#
- 13. Nhận địa chỉ IP của khách hàng: REMOTE_ADDR, HTTP_X_FORWARDED_FOR, điều gì khác có thể hữu ích?
- 14. Địa chỉ IP "Rác" với dấu hai chấm trong $ _SERVER ['REMOTE_ADDR'] cho một số khách hàng
- 15. Dns.GetHostEntry trả về nhiều địa chỉ IP
- 16. Xác minh mã trả lại: 20 (không thể lấy chứng chỉ nhà phát hành địa phương)
- 17. AWS SES - bị trả lại không được chuyển giao cho ReturnPath Địa chỉ
- 18. chỉ mục mảng và địa chỉ trả lại cùng một giá trị
- 19. Thiết địa chỉ IPv4/IPv6 và cổng vào một cấu trúc sockaddr_storage
- 20. Ký hiệu IPV6 của $ _SERVER ['REMOTE_ADDR']
- 21. Lưu trữ địa chỉ IP trong cơ sở dữ liệu MySQL (IPv4 và IPv6)
- 22. Thư Java, đặt địa chỉ trả lời không hoạt động
- 23. phpmailer không thể thêm thư trả lời vào địa chỉ
- 24. Có tài liệu nào để bỏ qua số không trong ký hiệu chấm thập phân của địa chỉ IPV4 không?
- 25. PHP $ _SERVER ['REMOTE_ADDR'] rỗng
- 26. Địa chỉ IP bị khóa PHP
- 27. iOS - NSLocalizedString chỉ trả lại chuỗi khóa
- 28. Gọi lại địa chỉ Coinbase không hoạt động?
- 29. Sử dụng C-string: "Địa chỉ của bộ nhớ ngăn xếp gắn liền với biến địa phương trả lại"
- 30. phpmailer: Trả lời chỉ sử dụng địa chỉ "Trả lời Tới"