2010-05-30 42 views
9

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

10

::1IPv6 address và viết tắt cho 0:0:0:0:0:0:0:1loopback 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.

8

Apache của bạn đang nghe theo số IPv6 kết nối theo mặc định (::1local 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 
-2

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ể).

3

Đ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

Các vấn đề liên quan