话不多说,请看代码:
/// <summary>
/// 获取客户端IP
/// </summary>
/// <returns></returns>
public static string GetClientIpAddress()
{
var httpContext = HttpContext.Current;
if (httpContext.Request.ServerVariables == null)
{
return null;
}
var clientIp = httpContext.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] ?? httpContext.Request.ServerVariables["REMOTE_ADDR"];
try
{
foreach (var hostAddress in Dns.GetHostAddresses(clientIp))
{
if (hostAddress.AddressFamily == AddressFamily.InterNetwork)
{
return hostAddress.ToString();
}
}
foreach (var hostAddress in Dns.GetHostAddresses(Dns.GetHostName()))
{
if (hostAddress.AddressFamily == AddressFamily.InterNetwork)
{
return hostAddress.ToString();
}
}
}
catch (Exception ex)
{
}
return clientIp;
}
/// <summary>
/// ip是否在ip空间内
/// </summary>
/// <param name="ip"></param>
/// <param name="ipSection"></param>
/// <returns></returns>
public static Boolean ipExistsInRange(String ip, String ipSection)
{
ipSection = ipSection.Trim();
ip = ip.Trim();
int idx = ipSection.IndexOf('-');
String beginIP = ipSection.Substring(0, idx);
String endIP = ipSection.Substring(idx + 1);
return getIp2long(beginIP) <= getIp2long(ip) && getIp2long(ip) <= getIp2long(endIP);
}
public static long getIp2long(String ip)
{
ip = ip.Trim();
String[] ips = ip.Split('.');
long ip2long = 0L;
for (int i = 0; i < 4; ++i)
{
ip2long = ip2long << 8 | Int64.Parse(ips[i]);
}
return ip2long;
}
public static long getIp2long2(String ip)
{
ip = ip.Trim();
String[] ips = ip.Split('.');
long ip1 = Int64.Parse(ips[0]);
long ip2 = Int64.Parse(ips[1]);
long ip3 = Int64.Parse(ips[2]);
long ip4 = Int64.Parse(ips[3]);
long ip2long = 1L * ip1 * 256 * 256 * 256 + ip2 * 256 * 256 + ip3 * 256 + ip4;
return ip2long;
}
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# C#
# 获取IP
# 判断IP
# C#获取真实IP地址(IP转为长整形、判断是否内网IP的方法)
# c#获取本机在局域网ip地址的二种方法
# c#获取本机的IP地址的代码
# C# 根据ip获取城市等相关信息
# C#获取计算机名
# IP
# MAC信息实现代码
# 用C#编写获取远程IP
# MAC的方法
# C#判断给定IP地址是否在指定范围内的方法
# C#判断ip地址是否可以ping的通
# c#判断正确的ip地址格式示例
# C#获取本机IP地址和Mac地址的方法
# 多说
# 客户端
# null
# return
# Request
# ServerVariables
# HttpContext
# Current
相关文章:
江苏网站制作公司有哪些,江苏书法考级官方网站?
Python如何创建带属性的XML节点
c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】
如何用景安虚拟主机手机版绑定域名建站?
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
重庆市网站制作公司,重庆招聘网站哪个好?
郑州企业网站制作公司,郑州招聘网站有哪些?
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
建站主机选购指南:核心配置与性价比推荐解析
北京建设网站制作公司,北京古代建筑博物馆预约官网?
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
如何通过西部建站助手安装IIS服务器?
如何快速搭建高效服务器建站系统?
网站微信制作软件,如何制作微信链接?
个人摄影网站制作流程,摄影爱好者都去什么网站?
想学网站制作怎么学,建立一个网站要花费多少?
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
网站制作价目表怎么做,珍爱网婚介费用多少?
,柠檬视频怎样兑换vip?
c# 在高并发场景下,委托和接口调用的性能对比
如何用VPS主机快速搭建个人网站?
简单实现Android验证码
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
招商网站制作流程,网站招商广告语?
建站之星后台密码遗忘或太弱?如何重置与强化?
C#怎么创建控制台应用 C# Console App项目创建方法
模具网站制作流程,如何找模具客户?
5种Android数据存储方式汇总
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
一键网站制作软件,义乌购一件代发流程?
招贴海报怎么做,什么是海报招贴?
如何在七牛云存储上搭建网站并设置自定义域名?
建站主机是否属于云主机类型?
如何通过虚拟主机空间快速建站?
如何在Windows虚拟主机上快速搭建网站?
C#如何在一个XML文件中查找并替换文本内容
ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
学校免费自助建站系统:智能生成+拖拽设计+多端适配
网站制作大概多少钱一个,做一个平台网站大概多少钱?
网站制作说明怎么写,简述网页设计的流程并说明原因?
平台云上自主建站:模板化设计与智能工具打造高效网站
建站主机选购指南:核心配置优化与品牌推荐方案
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
代刷网站制作软件,别人代刷火车票靠谱吗?
如何高效完成独享虚拟主机建站?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
高性价比服务器租赁——企业级配置与24小时运维服务
网站制作企业,网站的banner和导航栏是指什么?
*请认真填写需求信息,我们会在24小时内与您取得联系。