Maddy selva Ответов: 7

Получить местоположение пользователя по IP-адресу


У меня есть ASP.NET сайт написан на C#.

На этом сайте мне нужно автоматически показывать стартовую страницу в зависимости от местоположения пользователя.

Могу ли я получить название города пользователя на основе IP-адреса пользователя ?

7 Ответов

Рейтинг:
44

Maddy selva

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Web;
using System.Text;
using System.IO;
using System.Xml;
using System.Net;
using System.Net.Sockets;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //this line is to check the clien ip address from the server itself
        string IP = "";

        string strHostName = "";
        strHostName = System.Net.Dns.GetHostName();

        IPHostEntry ipEntry = System.Net.Dns.GetHostEntry(strHostName);

        IPAddress[] addr = ipEntry.AddressList;

        IP = addr[2].ToString();

        //Initializing a new xml document object to begin reading the xml file returned
        XmlDocument doc = new XmlDocument();           
        doc.Load("http://www.freegeoip.net/xml");       
        XmlNodeList nodeLstCity = doc.GetElementsByTagName("City");     
        IP = ""+ nodeLstCity[0].InnerText + "<br>" + IP;
        Response.Write(IP);
        //this is my header that I love
        
    }
}

[Редактировать:] Добавлен кодовый блок


Codes DeCodes

я также нуждался в этом в своем веб-приложении..я попробовал это.. как этот код достигает http://www.freegeoip.net/xml, он показывает мне ошибку "невозможно подключиться к удаленному серверу".. я набрал адрес в своем браузере http://www.freegeoip.net был открыт и адрес моего города.. теперь, когда я печатал http://www.freegeoip.net/xml/(myIP) в браузере отображается "RD Reserved"... какая-нибудь помощь в том, что происходит??

veerendrasingh

есть http://www.freegeoip.net сайт надежен?

Рейтинг:
2

bjdestiny

Мне это нравилось... Закладка его & +5..

ridoy

спасибо,:)

Рейтинг:
2

bjdestiny

Я думаю, что вы не искали свою проблему в CP.
В любом случае просто посетите Этот[^], Это1[^] и Этот[^] ссылки вы получите свое решение.


Maddy selva

Я решил это сам!..

Рейтинг:
1

Ainy Mughal

http://stackoverflow.com/questions/4327629/get-user-location-by-ip-address


Рейтинг:
0

Taha Akhtar

http://freegeoip.net/json/[^]

Запросите этот url-адрес и проанализируйте json, чтобы получить страну,город,IP-адрес пользователя ....


Рейтинг:
0

Thanks7872

Даже более простое решение, чем вы реализовали

string ip = Server.HtmlEncode(Request.UserHostAddress);

XmlDocument doc = new XmlDocument();

string getdetails= "http://www.freegeoip.net/xml/" + ip;

doc.Load(getdetails);

XmlNodeList nodeLstCity = doc.GetElementsByTagName("City");

string location = nodeLstCity[0].InnerText;


veerendrasingh

http://www.freegeoip.net не работает...

Thanks7872

Он работал в 2013 году :-)

Рейтинг:
0

Member 8253564

В timezoneapi.io вы можете запросить IP-адрес с помощью cURL. Он возвращает несколько объектов, включая местоположение, часовой пояс и дату-время.

$curl https://timezoneapi.io/developers/ip-address


Возвращается
- Местоположение, включая широту / долготу
- часовой пояс (переменные часового пояса, например капитал, валюта, префикс телефона, шорткоды и т. д.
- datetime (дата / время для часового пояса, когда был сделан запрос + множество переменных даты / времени).

Посмотрите здесь документацию по API:
IP-адрес. Получите информацию о местоположении пользователей, часовом поясе и дате/времени. - Часовой пояс API[^]