如何获取本地IP地址 2020-03-24

  1. 在头文件中定义两个函数
    int GetLocalHostName(CString &sHostName);
    int GetIpAddress(const CString &sHostName, BYTE &f0, BYTE &f1, BYTE &f2, BYTE &f3);

  2. 在cpp文件中实现函数
    int CMyClass::GetLocalHostName(CString &sHostName)
    {
    char szHostName[256];
    int nRetCode;
    nRetCode = gethostname(szHostName, sizeof(szHostName));
    if (nRetCode != 0)
    {
    //产生错误
    sHostName = _T("没有取得");
    return GetLastError();
    }
    sHostName = szHostName;

    return 0;
    }

int CMyClass::GetIpAddress(const CString &sHostName, BYTE &f0, BYTE &f1, BYTE &f2, BYTE &f3)
{
struct hostent FAR * lpHostEnt = gethostbyname(sHostName);
if (lpHostEnt == NULL)
{
//产生错误
f0 = f1 = f2 = f3 = 0;
return GetLastError();
}
//获取IP
LPSTR lpAddr = lpHostEnt->h_addr_list[0];
if (lpAddr)
{
struct in_addr inAddr;
memmove(&inAddr, lpAddr, 4);
f0 = inAddr.S_un.S_un_b.s_b1;
f1 = inAddr.S_un.S_un_b.s_b2;
f2 = inAddr.S_un.S_un_b.s_b3;
f3 = inAddr.S_un.S_un_b.s_b4;
}
return 0;
}

  1. 使用,变量“m_ctrlIpAddrNetIP”是CIPAddressCtrl类型的控件
    BYTE f0, f1, f2, f3;
    CString strHostname;
    GetLocalHostName(strHostname);
    GetIpAddress(strHostname, f0, f1, f2, f3);
    m_ctrlIpAddrNetIP.SetAddress(f0, f1, f2, f3);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 6,177评论 0 2
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 13,214评论 0 13
  • 1.先附上这个小游戏的网址 http://ctf.bugku.com/files/d2935133b45ff7a3...
    喝豆腐脑加糖阅读 5,849评论 0 0
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile丽语阅读 9,342评论 0 6
  • 所有故事像已发生漂泊岁月,一身迷彩一次青春。 纯真的身影在蓝天下拉得格外的稚嫩,是高一。 那年我们说要一直迎着太阳...
    普雅树静阅读 1,477评论 3 2

友情链接更多精彩内容