IP-адрес с использованием Javascript
<script type="application/javascript">
function getip(json){
alert(json.ip); // alerts the ip address
}
</script>
<script type="application/javascript" src="http://jsonip.appspot.com/?callback=getip"></script>
Я могу получить User IP с помощью этого кода...
Я хочу найти местоположение этого IP-адреса.
Как я могу?
Ответы
Ответ 1
Вы можете отправить IP-адрес, который вы получаете, в онлайн-службу геолокации, например http://www.geoplugin.net/json.gp?ip=<your ip here>&jsoncallback=<suitable javascript function in your source>
, а затем включить возвращаемый им источник, который будет запускать функцию, указанную в jsoncallback
, с информацией о геолокации.
В качестве альтернативы вам может понадобиться изучить функции геолокации HTML5 - вы можете увидеть демонстрацию этого в действии здесь. Преимущество этого заключается в том, что вам не нужно делать запросы на чужие серверы, но это может не работать в браузерах, которые не поддерживают HTML5.
Ответ 2
Бесплатное общедоступное сообщество, запускающее ip-сервис геолокации, работающее с базой данных MaxMind, доступно здесь: https://ipstack.com/
пример
https://api.ipstack.com/160.39.144.19
ограничение
10000 запросов в месяц
Ответ 3
Я хочу отметить, что если вы используете http://freegeoip.net/, вам не нужно указывать на него IP-адрес расположения клиента. Просто попробуйте следующее:
1) http://freegeoip.net/xml/
2) http://freegeoip.net/json/
3) http://freegeoip.net/csv/
Однако я не могу получить информацию с помощью вызовов AJAX, возможно, из-за какой-либо политики перекрестного происхождения. По-видимому, они не разрешили публичный доступ к своей системе.
Ответ 4
Это довольно легко с API, который отображает IP-адрес в местоположение. Запустите фрагмент, чтобы получить город и страну для IP-адреса в поле ввода.
$('.send').on('click', function(){
$.getJSON('https://ipapi.co/'+$('.ip').val()+'/json', function(data){
$('.city').text(data.city);
$('.country').text(data.country);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="ip" value="8.8.8.8">
<button class="send">Go</button>
<br><br>
<span class="city"></span>,
<span class="country"></span>
Ответ 5
На всякий случай, когда вы не смогли выполнить вышеуказанный код, вот простой способ использовать его с jquery:
$.getJSON("http://www.geoplugin.net/json.gp?jsoncallback=?",
function (data) {
for (var i in data) {
document.write('data["i"] = ' + i + '<br/>');
}
}
);
Ответ 6
Лучше всего пропустить "средний человек" (ip)
jQuery.get("http://ipinfo.io", function(response) {
console.log(response.city);
}, "jsonp");
Это дает вам IP, город, страну и т.д.
Ответ 7
Либо одна из следующих ссылок должна позаботиться об этом:
http://ipinfodb.com/ip_location_api_json.php
http://www.adam-mcfarland.net/2009/11/19/simple-ip-geolocation-using-javascript-and-the-google-ajax-search-api/
В этих ссылках есть учебные пособия для получения местоположения пользователей через Javascript. Однако они делают это через API для внешней службы данных. Если у вас очень высокий сайт трафика, вы можете захотеть самим размещать данные (или получить премиальный сервис api). Чтобы разместить все самостоятельно, вам нужно будет разместить базу данных с IP Geolocation и использовать ajax для подачи местоположения пользователей в Javascript. Если это подход, который вы хотите предпринять, вы можете получить бесплатную базу данных о IP-информации ниже:
http://www.ipinfodb.com/ip_database.php
Обратите внимание, что этот метод влечет за собой необходимость периодического обновления базы данных, чтобы оставаться точным при трассировке ips в местоположения.
Ответ 8
Довольно недорогой вариант - использовать API ipdata.co, он бесплатно обрабатывает до 1500 запросов в день.
В этом ответе используется "тестовый" API-ключ, который очень ограничен и предназначен только для тестирования нескольких вызовов. Зарегистрируйтесь для получения своего бесплатного ключа API и ежедневно получайте до 1500 запросов на разработку.
$.get("https://api.ipdata.co?api-key=test", function (response) {
$("#ip").html("IP: " + response.ip);
$("#city").html(response.city + ", " + response.region);
$("#response").html(JSON.stringify(response, null, 4));
}, "jsonp");
<h1><a href="https://ipdata.co">ipdata.co</a> - IP geolocation API</h1>
<div id="ip"></div>
<div id="city"></div>
<pre id="response"></pre>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Ответ 9
Вы можете использовать эту службу google бесплатную веб-службу геолокации IP
Обновление
ссылка сломана, я добавил сюда другую ссылку, которая включает @NickSweeting в комментариях:
ip-api.com
и вы можете получить данные в формате json:
http://ip-api.com/docs/api:json
Ответ 10
вы можете использовать ipinfodb после получения ключа api, который вы можете запросить для местоположения против определенного ip, такого как http://api.ipinfodb.com/v2/ip_query.php?key=" + apiKey + "&ip=" + ip + "&output=xml
, вы можете затем извлеките местоположение из ответа xml
Ответ 11
$.getJSON('//freegeoip.net/json/?callback=?', function(data) {
console.log(JSON.stringify(data, null, 2));
});
Ответ 12
Вам нужна база данных, которая содержит IP-адрес и расположение. Или вы можете использовать множество онлайн-инструментов для достижения этого, например: http://www.ipligence.com/geolocation
Google возвращает множество результатов по ключевым словам: "Местоположение IP"
Ответ 13
Попробуйте TUQ GEO IP API, он бесплатный и действительно опрятный и приятный с поддержкой jsonp.
http://tuq.in/tools/geo
http://tuq.in/tools/geo+stats
Ответ 14
Я бы порекомендовал вам использовать это, чтобы найти местоположение IP-адреса.
Его довольно просто использовать, с высокой скоростью запросов, минимальной задержкой и обширной еженедельно обновляемой базой данных. Помимо платных планов, он также имеет бесплатный план 45000 запросов в месяц.
Сначала вам нужно зарегистрироваться на https://ipgeolocation.io/ и выбрать желаемый тариф.
Затем войдите в систему и скопируйте ключ API с панели инструментов.
Теперь используйте этот ключ API, чтобы найти местоположение IP-адреса следующим образом:
curl 'https://api.ipgeolocation.io/ipgeo?apiKey=API_KEY&ip=1.1.1.1'
Вы получите ответ JSON следующим образом:
{
"ip": "8.8.8.8",
"hostname": "google-public-dns-a.google.com",
"continent_code": "NA",
"continent_name": "North America",
"country_code2": "US",
"country_code3": "USA",
"country_name": "United States",
"country_capital": "Washington",
"state_prov": "California",
"district": "",
"city": "Mountain View",
"zipcode": "94043",
"latitude": "37.4229",
"longitude": "-122.085",
"is_eu": false,
"calling_code": "+1",
"country_tld": ".us",
"languages": "en-US,es-US,haw,fr",
"country_flag": "https://ipgeolocation.io/static/flags/us_64.png",
"isp": "Level 3 Communications",
"connection_type": "",
"organization": "Google Inc.",
"geoname_id": "5375480",
"currency": {
"code": "USD",
"name": "US Dollar",
"symbol": "$"
},
"time_zone": {
"name": "America/Los_Angeles",
"offset": -8,
"current_time": "2019-01-14 03:30:00.135-0800",
"current_time_unix": 1547465400.135,
"is_dst": false,
"dst_savings": 1
}
}
Примечание. Некоторые дополнительные преимущества этого решения также включают API часовых поясов и API астрономии.