获取客户端IP及所在位置

获取客户端IP及所在位置
 

直接获取直接取客户端IP

private string GetIP()
    {
        string userIP = null;

        if (!String.IsNullOrEmpty(Request.ServerVariables["HTTP_X_FORWARDED_FOR"]))
            userIP = Request.ServerVariables["REMOTE_ADDR"];
        else
            userIP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

        if (String.IsNullOrEmpty(userIP))
            userIP = Request.UserHostAddress;

        return userIP;
    }

通过分析源码从其他网站取客户端IP和所在位置

private string GetIPandAddr()
    {
        string sourceFileText = null;
        Uri uri = new Uri("http://www.ikaka.com/ip/index.asp");
        System.Net.HttpWebRequest req = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(uri);
        req.Method = "POST";
        req.ContentType = "application/x-www-form-urlencoded";
        req.ContentLength = 0;
        req.CookieContainer = new System.Net.CookieContainer();
        req.GetRequestStream().Write(new byte[0], 0, 0);
        using (System.Net.HttpWebResponse res = (System.Net.HttpWebResponse)(req.GetResponse()))
        {
            StreamReader rs = new StreamReader(res.GetResponseStream(), System.Text.Encoding.GetEncoding("GB18030"));
            sourceFileText = rs.ReadToEnd();
            rs.Close();
            res.Close();
        }
        req.Abort();

        //页面源码:你的IP:<span class="b">111.11.111.11</span>,来自:<span class="b">安徽省合肥市电信</span>
        System.Text.RegularExpressions.Match m = System.Text.RegularExpressions.Regex.Match(sourceFileText, @"你的IP:<span class=""b"">(?<IP>[0-9\.]*)</span>,来自:<span class=""b"">(?<Addr>[\u4E00-\u9FFF]*)</span>");
        if (m.Success)
            return String.Format("你的IP:{0},来自:{1}", m.Groups["IP"].Value, m.Groups["Addr"].Value);
        return string.Empty;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值