|
|
发表于 2006-5-27 16:53:31
|
显示全部楼层
使用ioctl函数
bool KNetStatsView: penFdSocket() {
if (mFdSock > 0)
return true;
if ((mFdSock = socket(AF_INET, SOCK_DGRAM, 0)) > 0)
return true;
return false;
}
QString KNetStatsView::getIp() {
if (mFdSock == -1 && !openFdSocket())
return "";
ioctl(mFdSock, SIOCGIFADDR, &mDevInfo);
sockaddr_in sin = ((sockaddr_in&)mDevInfo.ifr_addr);
return inet_ntoa(sin.sin_addr);
}
QString KNetStatsView::getNetmask() {
if (mFdSock == -1 && !openFdSocket())
return "";
ioctl(mFdSock, SIOCGIFNETMASK, &mDevInfo);
sockaddr_in mask = ((sockaddr_in&)mDevInfo.ifr_netmask);
return inet_ntoa(mask.sin_addr);
} |
|