2016-01-04 25 views
5

Tôi chỉ muốn hỏi, có cách nào để tìm địa chỉ ip bằng cách sử dụng javascript không? đã được tìm kiếm trong một thời gian ngắn và hầu hết các kết quả là tôi cần phải sử dụng api (s). Tôi đã sử dụng webrtc này và nó hoạt động tốt nhưng nó không hoạt động trên IE, API là tuyệt vời, tôi đã thử nghiệm một số và hoạt động tốt trong các trình duyệt khác nhau.Nhận địa chỉ IP bằng cách sử dụng javascript

nhưng tôi cần lấy mã từ api, hoặc có thể lấy/trích xuất mã từ api và tạo tệp được chỉ định cho nguồn để tôi không dựa vào nguồn từ internet không?

Tôi cần tệp RAW từ api, vì nếu src của api bị hỏng, trang web của tôi cũng sẽ bị ảnh hưởng, vì vậy tôi muốn nó tạo và tạo nguồn bên ngoài và đưa nó vào trang web của tôi.

+0

Liên hệ với tác giả của API và yêu cầu tệp. – Teemu

+0

Bản sao có thể có của [Nhận ứng dụng khách IP chỉ sử dụng JavaScript?] (Http://stackoverflow.com/questions/391979/get-client-ip-using-just-javascript) Xem câu trả lời của Malta: http://stackoverflow.com/ a/5239085/1291428 – Sebas

+0

^Teemu chính xác thì không có cách nào khác về cách lấy tập lệnh thô? ^ Sebas Tôi đã thử nó, và tôi tự hỏi vì tất cả chúng đều có nguồn, nơi mà tôi có thể lấy tập tin thô của các nguồn đó. –

Trả lời

14

Hãy thử làm theo giải pháp: -

tùy chọn đầu tiên: -

$(document).ready(function() { 
    $.getJSON("http://jsonip.com/?callback=?", function (data) { 
     console.log(data); 
     alert(data.ip); 
    }); 
}); 

tùy chọn thứ hai: -

$.get("http://ipinfo.io", function(response) { 
    alert(response.ip); 
}, "jsonp"); 

Nó có thể giúp bạn.

+4

Tôi sẽ upvote nếu câu trả lời của bạn được sử dụng javascript ... – Sebas

+0

không có vấn đề, nhờ phản hồi @Sebas :) –

+0

làm việc cả hai tùy chọn, xin lỗi để yêu cầu này (noob câu hỏi) nhưng nếu bao giờ hoặc nếu có thể jsonip và ipinfo đi xuống ngay cả đối với chỉ một giây, trang web của tôi cũng sẽ bị ảnh hưởng, vậy có cách nào tôi có thể xem/xem/lấy mã nguồn được sử dụng trên các trang web đó không? –

2

Tôi có thể sai, nhưng tôi nghĩ bạn chỉ có thể phát hiện IP serverside, vì vậy bạn sẽ phải thực hiện một số loại yêu cầu get/post.

Câu trả lời khác cho thấy khả năng thực hiện điều này.

Ngoài ra, xem câu hỏi này: How to get client's IP address using javascript only?

0

Bạn cần phải tạo kịch bản ở backend của trang web của bạn, mà sẽ được trở lại IP, và thực hiện nó thông qua ajax.

Hoặc trên sân khấu của trang tạo (ít phụ trợ), bạn có thể phát hiện IP, và đặt nó vào cookie, hơn đọc cookie từ JS:

function getCookie(name) { 
    var matches = document.cookie.match(new RegExp(
    "(?:^|;)" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" 
)); 
    return matches ? decodeURIComponent(matches[1]) : undefined; 
} 
+0

thực sự Tôi cần địa chỉ IP và tôi sẽ lưu trữ nó bên trong một cookie, đó là lý do tại sao. Tôi theo đề nghị của bạn liên quan đến việc có được ip thông qua ajax, nhưng tôi vẫn không biết nếu tôi sẽ dính với điều đó, vì những gì tôi thực sự cần là javascript tinh khiết chỉ –

0

Nếu bạn muốn dữ liệu nguồn mà bạn có thể lấy nó từ MaxMind: http://dev.maxmind.com/geoip/ Có phiên bản miễn phí và trả phí. Hầu hết các nhà cung cấp thông tin IP đều sử dụng thư viện đó.

Nếu bạn chỉ cần IP, bạn có thể tạo tập lệnh của riêng mình. Chỉ cần tạo một tập lệnh phụ trợ giống như với PHP và yêu cầu nó từ JS. Ví dụ: http://php.about.com/od/learnphp/qt/record_user_ip.htm

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