C#编程获取IP地址的方法示例

 更新时间:2017年01月24日 11:33:30   作者:pan_junbiao  
这篇文章主要介绍了C#编程获取IP地址的方法,结合实例形式分析了C#获取客户端IP地址的具体实现技巧,需要的朋友可以参考下

本文实例讲述了C#编程获取IP地址的方法。分享给大家供大家参考,具体如下:

1、获取客户端IP

/// <summary>
/// 获取客户端Ip
/// </summary>
/// <returns></returns>
public String GetClientIp()
{
  String clientIP = "";
  if (System.Web.HttpContext.Current != null)
  {
    clientIP = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
    if (string.IsNullOrEmpty(clientIP) || (clientIP.ToLower() == "unknown"))
    {
      clientIP = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_REAL_IP"];
      if (string.IsNullOrEmpty(clientIP))
      {
        clientIP = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
      }
    }
    else
    {
      clientIP = clientIP.Split(',')[0];
    }
  }
  return clientIP;
}

2、服务器端获取客户端请求IP和客户端机器名称

/// <summary>
/// 服务器端获取客户端请求IP和客户端机器名称
/// </summary>
public static void GetClientInfo()
{
  OperationContext context = OperationContext.Current;
  MessageProperties messageProperties = context.IncomingMessageProperties;
  RemoteEndpointMessageProperty endpointProperty = messageProperties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
  HttpRequestMessageProperty requestProperty = messageProperties[HttpRequestMessageProperty.Name] as HttpRequestMessageProperty;
  string clientIp = !string.IsNullOrEmpty(requestProperty.Headers["X-Real-IP"]) ? requestProperty.Headers["X-Real-IP"] : endpointProperty.Address;
  string clientName = Environment.MachineName;
  Console.WriteLine("ClientIp: " + clientIp + "clientName:" + clientName);
}

PS:这里再为大家推荐几款IP相关工具供大家参考使用:

IP地址归属地在线查询工具:
http://tools.jb51.net/aideddesign/ipcha

在线IP地址/子网掩码计算与转换工具:
http://tools.jb51.net/aideddesign/ip_net_calc

在线网络计算器|TCP/IP子网掩码计算与换算工具:
http://tools.jb51.net/aideddesign/ipcalc

更多关于C#相关内容感兴趣的读者可查看本站专题:《C#程序设计之线程使用技巧总结》、《WinForm控件用法总结》、《C#中XML文件操作技巧汇总》、《C#常见控件用法教程》、《C#数据结构与算法教程》、《C#数组操作技巧总结》及《C#面向对象程序设计入门教程

希望本文所述对大家C#程序设计有所帮助。

相关文章

  • C#实现拷贝文件到另一个文件夹下

    C#实现拷贝文件到另一个文件夹下

    这篇文章主要介绍了C#实现拷贝文件到另一个文件夹下,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • C#使用itextsharp打印pdf的实现代码

    C#使用itextsharp打印pdf的实现代码

    提到打印,恐怕对于很多人都不会陌生,无论是开发者,还是非计算机专业的人员都会接触到打印, 在.NET中实现PDF打印的组件比较多,例如PDFsharp、Report.NET、sharpPDF、itextSharp等等,今天主要简单的介绍itextSharp组件,需要的朋友可以参考下
    2024-04-04
  • asp.net页面中如何获取Excel表的内容

    asp.net页面中如何获取Excel表的内容

    在浏览网页时,一定会看到我们需要保存的信息,我们比较常用的方法就是拖动鼠标,选中我们需要的内容,然后ctrl+c,然后在保持到excel当中去,那么如何用asp.net获取excel表的内容呢,下面小编就给大家介绍asp.net获取excel表的内容,需要的朋友可以参考下
    2015-08-08
  • C#探秘系列(二)——IsXXX 系列方法

    C#探秘系列(二)——IsXXX 系列方法

    VS是个大平台,当C#不好实现的时候,可以想想是否可以引用下其他语言下面的方法,或许你有大收获~
    2014-05-05
  • C#限速下载网络文件的方法实例

    C#限速下载网络文件的方法实例

    本篇文章主要介绍了C#限速下载网络文件的方法实例,可以限制下载文件的速度,非常具有实用价值,需要的朋友可以参考下。
    2016-12-12
  • C# 使用multipart form-data方式post数据到服务器

    C# 使用multipart form-data方式post数据到服务器

    这篇文章主要介绍了C# 使用multipart form-data方式post数据到服务器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 一文详解C#中重写(override)及覆盖(new)的区别

    一文详解C#中重写(override)及覆盖(new)的区别

    这篇文章主要为大家详细介绍了C#中重写(override)及覆盖(new)这两个关键词的区别,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2023-03-03
  • C#实现winform渐变效果的方法

    C#实现winform渐变效果的方法

    这篇文章主要介绍了C#实现winform渐变效果的方法,涉及到窗体的设计与属性的修改等技巧,需要的朋友可以参考下
    2014-10-10
  • WPF实现列表分页控件的示例代码

    WPF实现列表分页控件的示例代码

    这篇文章主要为大家详细介绍了如何利用WPF实现列表分页控件,文中的示例代码讲解详细,对我们学习或工作有一定帮助,感兴趣的小伙伴可以了解一下
    2022-10-10
  • C# 动画窗体(AnimateWindow)的小例子

    C# 动画窗体(AnimateWindow)的小例子

    C# 动画窗体(AnimateWindow)的小例子,需要的朋友可以参考一下
    2013-03-03

最新评论