在MFC中如何获取电脑IP 主机名 网关 MAC 子网掩码等
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在MFC中如何获取电脑IP 主机名 网关 MAC 子网掩码等相关的知识,希望对你有一定的参考价值。
一个简单的程序 按下BUTTON后在相应的LIST中显示
参考技术A 网关:bool CNetView::GetAdapterInfo(CString &strGwIp)
PIP_ADAPTER_INFO pAdapterInfo;
PIP_ADAPTER_INFO pAdapter = NULL;
DWORD dwRetVal = 0;
pAdapterInfo = (IP_ADAPTER_INFO *) malloc( sizeof(IP_ADAPTER_INFO) );
unsigned long ulOutBufLen = sizeof(IP_ADAPTER_INFO);
// Make an initial call to GetAdaptersInfo to get
// the necessary size into the ulOutBufLen variable
if (GetAdaptersInfo( pAdapterInfo, &ulOutBufLen) == ERROR_BUFFER_OVERFLOW)
free(pAdapterInfo);
pAdapterInfo = (IP_ADAPTER_INFO *) malloc (ulOutBufLen);
if ((dwRetVal = GetAdaptersInfo( pAdapterInfo, &ulOutBufLen)) == NO_ERROR)
pAdapter = pAdapterInfo;
while (pAdapter)
TRACE("\tAdapter Name: \t%s\n", pAdapter->AdapterName);
TRACE("\tAdapter Desc: \t%s\n", pAdapter->Description);
TRACE("\tAdapter Addr: \t%ld\n", pAdapter->Address);
TRACE("\tIP Address: \t%s\n", pAdapter->IpAddressList.IpAddress.String);
TRACE("\tIP Mask: \t%s\n", pAdapter->IpAddressList.IpMask.String);
TRACE("\tGateway: \t%s\n", pAdapter->GatewayList.IpAddress.String);
strGwIp.Format("网关[%s]", pAdapter->GatewayList.IpAddress.String);
//AfxMessageBox(strGwIp);
TRACE("\t***\n");
if (pAdapter->DhcpEnabled)
TRACE("\tDHCP Enabled: Yes\n");
TRACE("\t\tDHCP Server: \t%s\n", pAdapter->DhcpServer.IpAddress.String);
TRACE("\tLease Obtained: %ld\n", pAdapter->LeaseObtained);
else
TRACE("\tDHCP Enabled: No\n");
if (pAdapter->HaveWins)
TRACE("\tHave Wins: Yes\n");
TRACE("\t\tPrimary Wins Server: \t%s\n", pAdapter->PrimaryWinsServer.IpAddress.String);
TRACE("\t\tSecondary Wins Server: \t%s\n", pAdapter->SecondaryWinsServer.IpAddress.String);
else
TRACE("\tHave Wins: No\n");
pAdapter = pAdapter->Next;
else
TRACE("Call to GetAdaptersInfo failed.\n");
return false;
free(pAdapterInfo);
return true;
// IP 地址
CString CGetdata::GetlocalIPAddress()
WORD wVersionRequested;
WSADATA wsaData;
CString Address;
char szHostname[128];
wVersionRequested=MAKEWORD(2,0);
if(WSAStartup(wVersionRequested,&wsaData)==0)
if(gethostname(szHostname,128)==0)
struct hostent *pHost;
int i;
pHost=gethostbyname(szHostname);
for(i=0;pHost!=NULL && pHost->h_addr_list[i]!=NULL;i++)
int j;
for(j=0;j<pHost->h_length;j++)
CString addr;
if(j>0)
Address+=".";
addr.Format("%u",(unsigned int)((unsigned char *)pHost->h_addr_list[i])[j]);
Address+=addr;
WSACleanup();
return Address;
Mac OS 名称问题及修改方法(修改终端中显示的hostname(主机名称) / 电脑名称 / 管理员名称 / LocalHostName(本地主机名称))
文章目录
Intro
今天在修改电脑主机名的时候发现 Mac 中有好几个名称, 很容易搞混, 因此整理了他们的区别以及对应的修改方法.
- HostName: 主机名, 用于在系统上标识一台机器. 他和 IP 地址的区别是, hostname 用于在系统上标识一台机器; IP 地址是在 TCP/IP 网络中唯一标志一台机器. 联系到实际生活, 主机名相当于一个房子的主人名, 而 IP 地址相当于小区内这间房子的门牌号. [hostname 也就是打开终端, 出现在 “:~” 这两个符号前面的名字]
- 管理员名称: 就是电脑在初始化的时候你设置的管理员的名称, 也是电脑开机的时候头像下面显示的名称, 在
系统偏好设置-用户与群组
中进行修改. [打开终端, 管理员名称会出现在每个命令行 “:~” 符号之后]
因此终端中命令行的开头为
HostName :~ 管理员名称$
- ComputerName: 计算机名, 在进行 Airdrop 共享文件, 或者其他一些共享操作的时候, 其他人会以这个名字看到你的电脑. [打开访达 ComputerName 会显示在左侧的“位置”下面]
- LocalHostName: 本地主机名, 本地网络上的电脑可以通过这个名字访问您你的电脑, LocalHostName是带有 .local 的电脑名称, 而且任何空格都会替换为连字符, 例如电脑的名称是 My Computer 则本地主机名就是 My-Computer.local, 本地主机名不区分大小写.
查看名称并修改
首先查看系统环境: sw_vers
如下:
ProductName: Mac OS X
ProductVersion: 10.15.7
BuildVersion: 19H2
HostName
- 查看 HostName
scutil --get HostName
orhostname
orecho $HOSTNAME
, 这三个命令都可以查看 HostName. - 修改 HostName
sudo scutil --set HostName [HostName]
[HostName] 的位置是你想要设置的 HostName.
修改之后退出 terminal,再次进入后名字即改变.
管理员名称
在图形化界面中直接操作: 【系统偏好设置 - 用户与群组】
这个名称一般是不能改的, 可以通过新建/删除用户的方式进行修改, 不多说
ComputerName
- 查看 ComputerName
scutil --get ComputerName
- 修改 ComputerName
scutil --set ComputerName [ComputerName]
[ComputerName]的位置是你想要设置的ComputerName.
之后可以在访达左侧的“位置”下面看到这台电脑的名称, 也可以在【系统偏好设置 - 共享 - 电脑名称】中进行查看修改成功, 同时此处可以以直接修改 ComputerName.
LocalHostName
- 查看LocalHostName
scutil --get LocalHostName
- 修改 LocalHostName
sudo scutil --set LocalHostName [LocalHostName]
[LocalHostName]的位置是你想要设置的LocalHostName.
在【系统偏好设置 - 共享 - 电脑名称】下面一行, 点击右侧的“编辑”按钮, 即可查看是否修改成功, 同样此处也可修改 LocalHostName.
参考文章如下, 表示感谢!
参考文章
以上是关于在MFC中如何获取电脑IP 主机名 网关 MAC 子网掩码等的主要内容,如果未能解决你的问题,请参考以下文章