2010-12-12 42 views
16

Tôi đang làm việc trên một trang web và một trong những điều tôi muốn làm là hiển thị địa chỉ IP CỦA TÔI cho người dùng. Trang web được tạo bằng CodeIgniter, vì vậy tôi đang tìm kiếm IP máy chủ của mình bằng PHP. Địa chỉ IP có thể thay đổi (nó là một roamer), vì vậy tôi muốn tìm nó một cách năng động, không chỉ mã cứng nó. Tôi đã thử điều này:Địa chỉ IP máy chủ hiển thị PHP

$data['hostname'] = NULL; 
$data['ip'] = NULL; 
$var = gethostname(); 
if ($var === FALSE) { 
    $var = NULL; 
} else { 
    $data['hostname'] = $var; 
    $data['ip'] = gethostbyname($var); 
} 

Tuy nhiên, thay vì cho tôi Tên máy chủ và IP, tôi nhận được: "Moria" và "127.0.1.1". Không hoàn toàn những gì tôi đang tìm kiếm. Thay vào đó, nó phải nói "Moria.student.rit.edu" cho Tên máy chủ và địa chỉ IP. Bất kỳ giúp đỡ?

Trả lời

-5

Nếu ứng dụng laravel của bạn đang chạy trên một máy chủ nội bộ, bạn có thể sử dụng sau để có được địa chỉ bên ngoài của máy chủ:

$external_ip = exec('curl http://ipecho.net/plain; echo'); 
+2

Ác, xấu và sai. Mã này rất kém và không bao giờ được sử dụng trong sản xuất. Bạn nên sử dụng thư viện PHP Curl nội tại. Điều này tránh giả mạo quá trình http để sinh ra một trình bao. Ai biết liệu 'curl' có nằm trong đường dẫn không? 'Echo' là gì? Trong mọi trường hợp, một máy chủ web không bao giờ nên được phép bên ngoài chu vi của tổ chức của bạn. Nếu nó phải, nó phải đi qua một proxy nội bộ. – dland

+2

Không phải là một đề cập duy nhất của laravel tồn tại trên toàn bộ trang này chấp nhận của bạn. -1 – TheBlackBenzKid

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