这个是我自己写的,应该还有不全面的地方,请大侠们多多指点。
BOOL IsLocal(CString strServer )
{
if (strServer == _T("localhost"))
return TRUE;
if (strServer == _T("(local)"))
return TRUE;
if (strServer == _T("127.0.0.1"))
return TRUE;
//获得主机名
char hostname[255];
gethostname ( hostname, sizeof(hostname)); //本地主机名。
//获得IP列表,进行比较。
PHOSTENT hostinfo;
hostinfo = gethostbyname(hostname);
for ( int i=0; hostinfo->h_addr_list[i] != NULL && hostinfo != NULL; i++ )
{
if (strServer == inet_ntoa (*(struct in_addr *)hostinfo->h_addr_list[i]))
return TRUE;
}
//比较主机名。
CString strHostName = hostname;
strServer.MakeUpper();
strHostName.MakeUpper();
if (strServer == strHostName)
return TRUE;
return FALSE;
}