也许这个问题有点笨.但是我真的试了很多次没有成功.我试过的方法有:
1: /// <summary>
/// 根据IP地址获得主机名称
/// </summary>
/// <param name="ip">主机的IP地址</param>
/// <returns>主机名称</returns>
public string GetHostNameByIp(string ip)
{
ip = ip.Trim();
if (ip == string.Empty)
return string.Empty;
try
{
// 是否 Ping 的通
if (this.Ping(ip))
{
System.Net.IPHostEntry host = System.Net.Dns.GetHostEntry(ip);
return host.HostName;
}
else
return string.Empty;
}
catch (Exception)
{
return string.Empty;
}
} /// <summary>
/// 是否能 Ping 通指定的主机
/// </summary>
/// <param name="ip">ip 地址或主机名或域名</param>
/// <returns>true 通,false 不通</returns>
public bool Ping(string ip)
{
System.Net.NetworkInformation.Ping p = new System.Net.NetworkInformation.Ping();
System.Net.NetworkInformation.PingOptions options = new System.Net.NetworkInformation.PingOptions();
options.DontFragment = true;
string data = "Test Data!";
byte[] buffer = Encoding.ASCII.GetBytes(data);
int timeout = 1000; // Timeout 时间,单位:毫秒
System.Net.NetworkInformation.PingReply reply = p.Send(ip, timeout, buffer, options);
if (reply.Status == System.Net.NetworkInformation.IPStatus.Success)
return true;
else
return false;
}2:Request.UserHostName属性.3: /// <summary>
/// 远程主机的名称
/// </summary>
/// <returns></returns>
public static string GetRemoteHostName()
{
return HttpContext.Current.Request.ServerVariables["REMOTE_HOST"];
}
都没有得到,好的结果也只是得到了IP地址,并且,如果电脑有防火墙,禁止了Ping的话,第一种方法反回的是空.请各位高手帮我分析一下原因,是我的测试环境问题,还是有其它问题.谢谢.
1: /// <summary>
/// 根据IP地址获得主机名称
/// </summary>
/// <param name="ip">主机的IP地址</param>
/// <returns>主机名称</returns>
public string GetHostNameByIp(string ip)
{
ip = ip.Trim();
if (ip == string.Empty)
return string.Empty;
try
{
// 是否 Ping 的通
if (this.Ping(ip))
{
System.Net.IPHostEntry host = System.Net.Dns.GetHostEntry(ip);
return host.HostName;
}
else
return string.Empty;
}
catch (Exception)
{
return string.Empty;
}
} /// <summary>
/// 是否能 Ping 通指定的主机
/// </summary>
/// <param name="ip">ip 地址或主机名或域名</param>
/// <returns>true 通,false 不通</returns>
public bool Ping(string ip)
{
System.Net.NetworkInformation.Ping p = new System.Net.NetworkInformation.Ping();
System.Net.NetworkInformation.PingOptions options = new System.Net.NetworkInformation.PingOptions();
options.DontFragment = true;
string data = "Test Data!";
byte[] buffer = Encoding.ASCII.GetBytes(data);
int timeout = 1000; // Timeout 时间,单位:毫秒
System.Net.NetworkInformation.PingReply reply = p.Send(ip, timeout, buffer, options);
if (reply.Status == System.Net.NetworkInformation.IPStatus.Success)
return true;
else
return false;
}2:Request.UserHostName属性.3: /// <summary>
/// 远程主机的名称
/// </summary>
/// <returns></returns>
public static string GetRemoteHostName()
{
return HttpContext.Current.Request.ServerVariables["REMOTE_HOST"];
}
都没有得到,好的结果也只是得到了IP地址,并且,如果电脑有防火墙,禁止了Ping的话,第一种方法反回的是空.请各位高手帮我分析一下原因,是我的测试环境问题,还是有其它问题.谢谢.
解决方案 »
- 在线等!求这种样式的图片替换代码
- 正则表达式非 两个或两个以上 字符匹配
- asp.net 上传dbf到服务器然后导入mdb数据库的问题,谢谢了
- FCKeditor 的get set
- 关于.NET工作流的OA系统,要怎么来操作工作流?望高手指点,要源代码不是图形那种。
- 关于数据验证控件的提交
- 如何修改背景图片的平铺方式为居中方式
- 如果有一个函数不会用了,真不知道去哪查
- 一个显示错误的问题?想在本机上显示远端服务器的错误信息!
- google的日程安排中弹出漂亮的菜单是怎么做的,只有20分,大家不要嫌分少
- 求字符串截取方法,肯定结贴
- [11.15]SQL SERVER查询时, 可不可以指定某个字段返回的字符不超过XX个
不然不就成了病毒了吗?而且客户端都是脚本的东西,像这些东西有的时候都是被禁止的
当然activeX是可以实现的,或者用wscript去写,去调用shell
不然不就成了病毒了吗?而且客户端都是脚本的东西,像activeX这些东西有的时候都是被禁止的
当然activeX是可以实现的,或者用wscript去写,去调用shell
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
获取服务器电脑名:Page.Server.ManchineName
获取用户信息:Page.User
获取客户端电脑名:Page.Request.UserHostName
获取客户端电脑IP:Page.Request.UserHostAddress
获取当前电脑名:static System.Net.Dns.GetHostName()
根据电脑名取出全部IP地址:static System.Net.Dns.Resolve(电脑名).AddressList
也可根据IP地址取出电脑名:static System.Net.Dns.Resolve(IP地址).HostName
当前电脑名:static System.Environment.MachineName
当前电脑所属网域:static System.Environment.UserDomainName
当前电脑用户:static System.Environment.UserName
如果客户端不能用DNS来解析的话,那么根据客户端的IP也是无法获取客户端的主机名的
偶也想知道不用ActiveX能不能得到。