C/C++ 如果获取本机IP和修改IP,代码尽量要简介,本人菜鸟

如题... 如题 展开
 我来答
ring_year
推荐于2017-12-16 · TA获得超过1425个赞
知道小有建树答主
回答量:632
采纳率:80%
帮助的人:538万
展开全部

MFC:

---------------在StdAfx.h中加入---------------------
#include <winsock2.h>    //套接字编程需要的头文件
#pragma  comment(lib,"ws2_32.lib") //套接字编程需要的库文件
---------------在要用的地方---------------------
 WSADATA wsadata;
 if(0 != WSAStartup(MAKEWORD(2, 2), &wsadata))   //初始化
 {
  AfxMessageBox("初始化网络环境失败!");
  return TRUE;
 }
 char szHostName[MAX_PATH + 1];
 gethostname(szHostName, MAX_PATH);  //得到计算机名
 hostent *p = gethostbyname(szHostName); //从计算机名得到主机信息
 if(p == NULL)
 {
  AfxMessageBox("得到本机网络信息失败!");
  return TRUE;
 }
 m_strName = szHostName;       //保存主机名
 int nCount = 0;                 //保存主机地址
 char *pIP = inet_ntoa(*(in_addr *)p->h_addr_list[0]);//将32位IP转化为字符串IP
 m_strAddr = pIP;             //保存主机IP地址
    UpdateData(FALSE);          //显示各个数据
 WSACleanup();               //释放Winsock API

QT:

QString Widget::getIP()  //获取ip地址  
{  
    QList<QHostAddress> list = QNetworkInterface::allAddresses();  
    foreach (QHostAddress address, list)  
    {  
       if(address.protocol() == QAbstractSocket::IPv4Protocol)  
//我们使用IPv4地址  
            return address.toString();  
    }  
       return 0;  
}  
或者
QString localHostName = QHostInfo::localHostName();  
  
qDebug() <<"localHostName:"<<localHostName;  
QHostInfo info = QHostInfo::fromName(localHostName);    
foreach(QHostAddress address,info.addresses())    
{  
    if(address.protocol() == QAbstractSocket::IPv4Protocol)              
        qDebug() <<"IPV4 Address: "<< address.toString();    
}

另外,如果是windows系统:

可以参考:http://blog.csdn.net/q277055799/article/details/8301581

Storm代理
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式