当前位置: 首页 > news >正文

ASP.NET获取客户端IP/用户名等信息

1. 在ASP.NET中专用属性:
获取服务器电脑名:Page.Server.ManchineName
获取用户信息:Page.User
获取客户端电脑名:Page.Request.UserHostName
获取客户端电脑IP:Page.Request.UserHostAddress

2. 在网络编程中的通用方法:
获取当前电脑名:static System.Net.Dns.GetHostName()
根据电脑名取出全部IP地址:static System.Net.Dns.Resolve(电脑名).AddressList
也可根据IP地址取出电脑名:static System.Net.Dns.Resolve(IP地址).HostName

3. 系统环境类的通用属性:
当前电脑名:static System.Environment.MachineName
当前电脑所属网域:static System.Environment.UserDomainName
当前电脑用户:static System.Environment.UserName  

4. if(Request.ServerVariables["HTTP_VIA"]!=null){  string     user_IP=Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();    
            }else{    
              string     user_IP=Request.ServerVariables["REMOTE_ADDR"].ToString();    
          }    
5.<%=Request.UserHostAddress%>

6.获取客户端IP:

private string GetClientIP()
  {
   string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
   if (null == result || result == String.Empty)
   {
    result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
   }

   if (null == result || result == String.Empty)
   {
    result = HttpContext.Current.Request.UserHostAddress;
   }
   return result;
  }

获取MAC地址:

[DllImport("Iphlpapi.dll")]
  private static extern int SendARP(Int32 dest,Int32 host,ref Int64 mac,ref Int32 length);
  [DllImport("Ws2_32.dll")]
  private static extern Int32 inet_addr(string ip);

  private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面
   try
   {
    string userip=Request.UserHostAddress;
    string strClientIP = Request.UserHostAddress.ToString().Trim();
    Int32 ldest = inet_addr(strClientIP); //目的地的ip
    Int32 lhost = inet_addr("");   //本地服务器的ip
    Int64 macinfo = new Int64();
    Int32 len = 6;
    int res = SendARP(ldest,0, ref macinfo, ref len);
    string mac_src=macinfo.ToString("X");
    if(mac_src == "0")
    {
     if(userip=="127.0.0.1")
      Response.Write ("正在访问Localhost!");
     else
      Response.Write ("欢迎来自IP为" + userip + "的朋友!" + "<br>");
     return;
    }

    while(mac_src.Length<12)
    {
     mac_src = mac_src.Insert(0,"0");
    }

    string mac_dest="";

    for(int i=0;i<11;i++)
    {
     if (0 == (i % 2))
     {
      if ( i == 10 )
      {
       mac_dest = mac_dest.Insert(0,mac_src.Substring(i,2));
      }
      else
      {
       mac_dest ="-" + mac_dest.Insert(0,mac_src.Substring(i,2));
      }
     }
    }

    Response.Write ("欢迎来自IP为"+userip+ "<br>" + ",MAC地址为"+mac_dest+"的朋友!"

     +   "<br>");
   }
   catch(Exception err)
   {
    Response.Write(err.Message);
   }
  }

转载于:https://www.cnblogs.com/freedom831215/archive/2009/10/03/1577676.html

相关文章:

  • mysql noinstall 安装
  • asp.NET 脏字过滤算法 修改版
  • 起个名儿,叫如何自主学习(网络版)~~
  • 整理网上的一些关于sharepoint编码方面的最佳实践
  • 基于MapWinGis的开发探索(四)——图层窗口、地名检索的实现
  • 中间件
  • ArcEngine开发点滴1
  • [转]ATOM 规范 中文版
  • javascript实现组合的递归算法及变种
  • 汇报方案
  • [转]深一层看依赖注入
  • C# 中的委托和事件 copyright http://www.cnblogs.com/JimmyZhang
  • Week Function
  • China MVP Open Day 2009
  • C# Windows Form 刷新父窗体
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • CSS相对定位
  • Java新版本的开发已正式进入轨道,版本号18.3
  • linux安装openssl、swoole等扩展的具体步骤
  • MD5加密原理解析及OC版原理实现
  • mysql中InnoDB引擎中页的概念
  • NSTimer学习笔记
  • Odoo domain写法及运用
  • react-native 安卓真机环境搭建
  • Shadow DOM 内部构造及如何构建独立组件
  • Transformer-XL: Unleashing the Potential of Attention Models
  • 安装python包到指定虚拟环境
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 聊聊flink的TableFactory
  • 模型微调
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 我这样减少了26.5M Java内存!
  • 阿里云移动端播放器高级功能介绍
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (7)STL算法之交换赋值
  • (AngularJS)Angular 控制器之间通信初探
  • (超详细)语音信号处理之特征提取
  • (第27天)Oracle 数据泵转换分区表
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (利用IDEA+Maven)定制属于自己的jar包
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (一)基于IDEA的JAVA基础1
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)Linux整合apache和tomcat构建Web服务器
  • .net framework 4.0中如何 输出 form 的name属性。
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • .NET使用存储过程实现对数据库的增删改查
  • /etc/motd and /etc/issue