在VC下动态获取主机名与外网IP地址,

************************************************************************/          
/* 函数说明:获取当前外网IP地址                                            
/* 参    数:无                                        
/* 返 回 值:返回外网IP地址、CString类型字符串         
/* By:Koma   2009.08.21 14:12                                     
/************************************************************************/      
CString CQDlg::GetIPAddress()     
{     
    char buf[MAX_PATH] = {0};     
    char chTempIp[128];     
    char chIP[64];     
    CString strPath;     
    strPath = GetExePath() + "//netip.ini";     
    URLDownloadToFile(0,"http://www.ip138.com/ip2city.asp",strPath,0,NULL);     
         
    FILE *fp=fopen( strPath, "r" );     
    if ( fp != NULL )      
    {     
        fseek(fp, 0, SEEK_SET);     
        fread(buf,1,256,fp);     
        fclose(fp);     
        char* iIndex = strstr(buf,"[");     
        if (iIndex)      
        {     
            sprintf( chTempIp,"%s",iIndex);     
            int nBuflen = strlen(chTempIp);     
            for(int i =0; i<nBuflen; i++)     
            {     
                chIP[i] = chTempIp[i+1];     
                     
                if(chTempIp[i] == ']')      
                {     
                    chIP[i-1] = '/0';     
                    DeleteFile(strPath);     
                    continue;     
                }     
            }     
        }     
    }     
    CString strTemp="";     
    if(chIP != "")     
    {     
        strTemp.Format("%s",chIP);     
    }     
    return strTemp;     
}     
    
/************************************************************************/          
/* 函数说明:获取当前主机名                                            
/* 参    数:无                                        
/* 返 回 值:返回主机名、CString类型字符串         
/* By:Koma   2009.08.21 14:23                                     
/************************************************************************/        
CString CQDlg::GetHostName()     
{     
    WORD        wVersionRequested;     
    WSADATA         wsaData;     
    int         err;     
    wVersionRequested = MAKEWORD(2,0);     
    err = WSAStartup(wVersionRequested,&wsaData);     
    if(err != 0)     
    {     
        return err;     
    }     
    if(LOBYTE(wsaData.wVersion != 2) || HIBYTE(wsaData.wVersion) != 0)     
    {     
        WSACleanup();     
        return (char)WSAVERNOTSUPPORTED;     
    }     
         
    char    szHostName[256];     
    int     nRetCode;     
    CString str="";     
         
    //调用API来获得主机名     
    nRetCode = gethostname(szHostName,sizeof(szHostName));     
    if(nRetCode != 0)     
    {     
        return WSAGetLastError();     
    }  
    if(szHostName != "")   
    {  
            str.Format("主机名:%s",szHostName);  
    }     
    return str;     


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wangningyu/archive/2009/08/22/4471794.aspx

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值