作者:卡夫卡咯 | 来源:互联网 | 2022-02-02 13:50
本篇文章主要介绍了asp.net 获取客户端浏览器访问的IP地址的实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文介绍了asp.net 获取客户端浏览器访问的IP地址的实例代码,分享给大家,自己也留个笔记
1、js方法
2、后台代码实现
#region IP地址限制功能 2017-07-18
///
///
///
///
public bool IsIPValidate()
{
bool flag = false;
string userip = GetLoginIp();
string[] addr = GetAddressByIp(userip);
string addrs = addr[0] + addr[1];
if ("北京".Equals(addr[0]) || "北京".Equals(addr[1]))
{
flag = true;
}
return flag;
}
///
/// 获取远程访问用户的Ip地址
///
/// 返回Ip地址
protected string GetLoginIp()
{
string loginip = "";
//Request.ServerVariables[""]--获取服务变量集合
if (Request.ServerVariables["REMOTE_ADDR"] != null) //判断发出请求的远程主机的ip地址是否为空
{
//获取发出请求的远程主机的Ip地址
loginip = Request.ServerVariables["REMOTE_ADDR"].ToString();
}
//判断登记用户是否使用设置代理
else if (Request.ServerVariables["HTTP_VIA"] != null)
{
if (Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null)
{
//获取代理的服务器Ip地址
loginip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}
else
{
//获取客户端IP
loginip = Request.UserHostAddress;
}
}
else
{
//获取客户端IP
loginip = Request.UserHostAddress;
}
return loginip;
}
///
/// 根据IP获取省市
///
public string[] GetAddressByIp(string ip)
{
string PostUrl = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?ip=" + ip;
string res = GetDataByPost(PostUrl);//该条请求返回的数据为:res=1t115.193.210.0t115.194.201.255t中国t浙江t杭州t电信
string[] arr = getAreaInfoList(res);
return arr;
}
///
/// Post请求数据
///
///
///
public string GetDataByPost(string url)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
string s = "anything";
byte[] requestBytes = System.Text.Encoding.ASCII.GetBytes(s);
req.Method = "POST";
req.COntentType= "application/x-www-form-urlencoded";
req.COntentLength= requestBytes.Length;
Stream requestStream = req.GetRequestStream();
requestStream.Write(requestBytes, 0, requestBytes.Length);
requestStream.Close();
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.Default);
string backstr = sr.ReadToEnd();
sr.Close();
res.Close();
return backstr;
}
///
/// 处理所要的数据
///
///
///
public static string[] getAreaInfoList(string ipData)
{
//1t115.193.210.0t115.194.201.255t中国t浙江t杭州t电信
string[] areaArr = new string[10];
string[] newAreaArr = new string[2];
try
{
//取所要的数据,这里只取省市
areaArr = ipData.Split('t');
newAreaArr[0] = areaArr[4];//省
newAreaArr[1] = areaArr[5];//市
}
catch (Exception e)
{
}
return newAreaArr;
}
#endregion
以上就是关于asp.net如何获取浏览器访问的IP地址?的详细内容,更多请关注其它相关文章!