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# Task自己动手写个异步IO函数

    基于c# Task自己动手写个异步IO函数

    这篇文章主要介绍了如何基于c# Task自己动手写个异步IO函数,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • C#实现飞行棋游戏

    C#实现飞行棋游戏

    这篇文章主要为大家详细介绍了C#实现飞行棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • C#实现图像锐化的方法

    C#实现图像锐化的方法

    这篇文章主要介绍了C#实现图像锐化的方法,涉及C#操作图像的相关技巧,需要的朋友可以参考下
    2015-04-04
  • C#中如何正确的使用字符串String

    C#中如何正确的使用字符串String

    这篇文章主要给大家介绍了关于在C#中如何正确的使用字符串String的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • C#使用AutoMapper实现类映射详解

    C#使用AutoMapper实现类映射详解

    AutoMapper是一个用于.NET中简化类之间的映射的扩展库,这篇文章主要介绍了C#如何使用AutoMapper实现类映射,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-01-01
  • 详解c#索引(Index)和范围(Range)

    详解c#索引(Index)和范围(Range)

    这篇文章主要介绍了c#索引(Index)和范围(Range)的相关资料,帮助大家更好的理解和学习c#,感兴趣的朋友可以了解下
    2020-10-10
  • C# winform实现多语言切换功能

    C# winform实现多语言切换功能

    这篇文章主要为大家详细介绍了如何使用C# winform实现多语言切换功能,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以了解下
    2024-02-02
  • C#中Dictionary与List的用法区别以及联系详解

    C#中Dictionary与List的用法区别以及联系详解

    List和Dictionary想必是我们平常用到最多的C#容器了,他们使用起来都很简单,这篇文章主要给大家介绍了关于C#中Dictionary与List的用法区别以及联系的相关资料,需要的朋友可以参考下
    2023-11-11
  • WPF InkCanvas基本操作方法详解

    WPF InkCanvas基本操作方法详解

    这篇文章主要为大家详细介绍了WPF InkCanvas基本的操作方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • C# PaddleOCRSharp OCR进行疲劳测试

    C# PaddleOCRSharp OCR进行疲劳测试

    PaddleOCRSharp 是百度飞桨封装的.NET版本 OCR dll 类库,OCR可以将图像文件中的文本内容进行识别,下面我们就来看看如何通过它们实现疲劳测试吧
    2024-11-11

最新评论