各位高手
我这样 System.Net.IPAddress ip = System.Net.IPAddress.Parse(Request.UserHostAddress);
System.Net.IPHostEntry ihe = System.Net.Dns.GetHostEntry(ip);
//机器名
string clientname = ihe.HostName;
Response.Write(clientname + "<br>");
Response.Write(System.Environment.MachineName+"<br>");
Response.Write(System.Net.Dns.GetHostName());
怎么只能获取局域网内的计算机名呢
我想获取网络上的计算机名该怎么做啊?
先谢谢各位了!
我这样 System.Net.IPAddress ip = System.Net.IPAddress.Parse(Request.UserHostAddress);
System.Net.IPHostEntry ihe = System.Net.Dns.GetHostEntry(ip);
//机器名
string clientname = ihe.HostName;
Response.Write(clientname + "<br>");
Response.Write(System.Environment.MachineName+"<br>");
Response.Write(System.Net.Dns.GetHostName());
怎么只能获取局域网内的计算机名呢
我想获取网络上的计算机名该怎么做啊?
先谢谢各位了!
试试看!应该可以
如果是服务器端的很容易:Server.MachineName;客户端就比较麻烦。参考这个参考
客户端的 :Page.Request.UserHostName ;
:HttpContext.Current.Request.LogonUserIdentity.Name ;
CString strTemp;
struct hostent *host;
struct in_addr *ptr; // 获取IP地址的结构
DWORD dwScope = RESOURCE_CONTEXT;
NETRESOURCE *NetResource = NULL;
HANDLE hEnum;
WNetOpenEnum( dwScope, NULL, NULL, NULL, &hEnum );
WSADATA wsaData;
WSAStartup(MAKEWORD(1,1),&wsaData);
if ( hEnum )
{
DWORD Count = 0xFFFFFFFF;
DWORD BufferSize = 2048;
LPVOID Buffer = new char[2048];
WNetEnumResource( hEnum, &Count, Buffer, &BufferSize );
NetResource = (NETRESOURCE*)Buffer;
char szHostName[200];
for ( unsigned int i = 0; i < BufferSize/sizeof(NETRESOURCE);
i++, NetResource++ )
{
if ( NetResource->dwUsage == RESOURCEUSAGE_CONTAINER &&
NetResource->dwType == RESOURCETYPE_ANY )
{
if ( NetResource->lpRemoteName )
{
CString strFullName = NetResource->lpRemoteName;
if ( 0 == strFullName.Left(2).Compare("\\\\") )
strFullName = strFullName.Right(strFullName.GetLength()-2);
gethostname( szHostName, strlen( szHostName ) );
host = gethostbyname(strFullName);
if(host == NULL) continue;
ptr = (struct in_addr *) host->h_addr_list[0];
// 211.40.35.76 分割成如下形式.
int a = ptr->S_un.S_un_b.s_b1; // 211
int b = ptr->S_un.S_un_b.s_b2; // 40
int c = ptr->S_un.S_un_b.s_b3; // 35
int d = ptr->S_un.S_un_b.s_b4; // 76
strTemp.Format("%s --> %d.%d.%d.%d",strFullName,a,b,c,d);
AfxMessageBox(strTemp);
}
}
}
delete Buffer;
WNetCloseEnum( hEnum );
}
WSACleanup();
最後我知道了。好後悔。
。NET只能得到客戶端的IP
要用JS才能得到COMPUTERNAME
如果客戶端關了JS那就永遠也得不到了。
这个在局域网内是没问题的
但在internet上每台机子访问时都是显示 VHOST415
在局域网内是正确的
但在internet上得到的结果却总是 VHOST415
你去网上查啦
var wsh=new ActiveXObject("WScript.Network");
alert(wsh.ComputerName);
但上传到网络上后 一打开那个页面就报错
http://baocheng.webdt.net/3.html
什么服务器不能创建对象
请问该怎么解决啊