asp.net 获取客户端浏览器访问的IP地址的实例代码
发布时间 - 2026-01-11 02:25:50 点击率:次本文介绍了asp.net 获取客户端浏览器访问的IP地址的实例代码,分享给大家,自己也留个笔记

1、js方法
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Document</title>
<script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>
<script type="text/javascript">
document.write('IP地址:' + returnCitySN["cip"] + ', 城市编码:' + returnCitySN["cid"] + ', 地区:' + returnCitySN["cname"]);
</script>
</head>
<body>
</body>
</html>
2、后台代码实现
#region IP地址限制功能 2017-07-18
/// <summary>
///
/// </summary>
/// <returns></returns>
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;
}
/// <summary>
/// 获取远程访问用户的Ip地址
/// </summary>
/// <returns>返回Ip地址</returns>
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;
}
/// <summary>
/// 根据IP获取省市
/// </summary>
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;
}
/// <summary>
/// Post请求数据
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 处理所要的数据
/// </summary>
/// <param name="ip"></param>
/// <returns></returns>
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
# 获取客户端IP
# 用IIS建立的.net网站通过IP地址不能访问解决方法
# .net获取本机公网IP地址示例
# asp.net获取URL和IP地址的方法汇总
# ASP.NET获取真正的客户端IP地址的6种方法
# jquery的ajax从纯真网(cz88.net)获取IP地址对应地区名
# asp.net DZ论坛中根据IP地址取得所在地的代码
# .Net获取IP地址的方法
# 客户端
# 杭州
# 浙江
# 所要
# 北京
# 中国
# 给大家
# 大家多多
# 留个
# 为空
# 远程访问
# summary
# bool
# public
# returns
# body
# cname
# cid
# csharp
# region
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何用好域名打造高点击率的自主建站?
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
,交易猫的商品怎么发布到网站上去?
教学论文网站制作软件有哪些,写论文用什么软件
?
怎么用AI帮你设计一套个性化的手机App图标?
香港服务器部署网站为何提示未备案?
如何获取上海专业网站定制建站电话?
Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比
Laravel如何使用Sanctum进行API认证?(SPA实战)
JS实现鼠标移上去显示图片或微信二维码
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
如何用JavaScript实现文本编辑器_光标和选区怎么处理
如何挑选优质建站一级代理提升网站排名?
Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】
深圳网站制作培训,深圳哪些招聘网站比较好?
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
Laravel如何实现多对多模型关联?(Eloquent教程)
Laravel如何发送系统通知?(Notification渠道示例)
如何在香港服务器上快速搭建免备案网站?
如何在建站主机中优化服务器配置?
EditPlus中的正则表达式实战(6)
Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
Claude怎样写结构化提示词_Claude结构化提示词写法【教程】
详解jQuery停止动画——stop()方法的使用
如何在搬瓦工VPS快速搭建网站?
如何登录建站主机?访问步骤全解析
Swift中switch语句区间和元组模式匹配
Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理
5种Android数据存储方式汇总
Claude怎样写约束型提示词_Claude约束提示词写法【教程】
Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门
如何基于云服务器快速搭建个人网站?
大同网页,大同瑞慈医院官网?
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
Laravel的.env文件有什么用_Laravel环境变量配置与管理详解
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南
如何快速启动建站代理加盟业务?
Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧

