如何获取本机IP

zhangyansjz 2005-06-08 01:22:27
如题,如何获取本机IP
...全文
149 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
vcmute 2005-06-08
  • 打赏
  • 举报
回复
#include <windows.h>
#include <winsock.h>
#include <stdio.h>

void main()
{
WSADATA wsaData;
char szHostname[100];
HOSTENT *pHostEnt;
int nAdapter = 0;
struct sockaddr_in sAddr;

if (WSAStartup(0x0101, &wsaData))
{
printf("WSAStartup failed %s\n", WSAGetLastError());
return;
}

gethostname( szHostname, sizeof( szHostname ));
pHostEnt = gethostbyname( szHostname );

while ( pHostEnt->h_addr_list[nAdapter] )
{
// pHostEnt->h_addr_list[nAdapter] is the current address in host
// order.

// Copy the address information from the pHostEnt to a sockaddr_in
// structure.
memcpy ( &sAddr.sin_addr.s_addr, pHostEnt->h_addr_list[nAdapter],
pHostEnt->h_length);

// Output the machines IP Address.
printf("Name: %s\nAddress: %s\n", pHostEnt->h_name,
inet_ntoa(sAddr.sin_addr));

nAdapter++;
}
WSACleanup();
return;

}
vcmute 2005-06-08
  • 打赏
  • 举报
回复
别忘了
WSAStartup(0x0101, &wsaData)
zdb26 2005-06-08
  • 打赏
  • 举报
回复
CString DetectLocalIP()
{
CString strIP;
char szHostName[128] = {0};
if ( gethostname(szHostName, sizeof(szHostName)) == 0 )
{
struct hostent * pHost = gethostbyname(szHostName);

if (pHost)
{
LPCSTR ip = inet_ntoa(* ((struct in_addr *) *(pHost->h_addr_list)));
strIP.Format("%s", ip);
}
}
else
{
// Handle the exp
strIP = _T("");
}

return strIP;
}
bohut 2005-06-08
  • 打赏
  • 举报
回复
char szhostname[128];
CString str;
//获得主机名
if( gethostname(szhostname, 128) == 0 )
{
// 获得主机ip地址
struct hostent * phost;
int i;
phost = gethostbyname(szhostname);
m_hostname=szhostname;
i=0;
int j;
int h_length=4;
for( j = 0; j<h_length; j++ )
{
CString addr;

if( j > 0 )
str += ".";

addr.Format("%u", (unsigned int)((unsigned
char*)phost->h_addr_list[i])[j]);
str += addr;
}

}
m_ipaddress=str;

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧