如何取得自己的ip? |
答題得分者是:deity
|
linda_wei
一般會員 發表:44 回覆:31 積分:20 註冊:2004-04-08 發送簡訊給我 |
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
linda_wei
您好,参考:
http://dev.csdn.net/article/35/35435.shtm
标题 Windows和Linux得到本机IP地址的通用函数 选择自 liuleilover 的 Blog 关键字 Windows和Linux得到本机IP地址的通用函数 出处 //参数: ipbuf :存放得到的IP地址列表的数组,实际大小由bufcount指定。 bufcount:想要得到的IP地址列表的个数。 #ifdef _WIN32 #include |
linda_wei
一般會員 發表:44 回覆:31 積分:20 註冊:2004-04-08 發送簡訊給我 |
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
引言: yes...3Q 那再請問, 如果, 我要取得包括mac address, getaway....等資料, c裡該如何取呢?您好,取得包括mac address: 【轉貼】取得系統中網卡MAC位址的三種方法 http://delphi.ktop.com.tw/topic.php?topic_id=53715 如何根據網路內的IP地址得到該機的MAC地址? http://delphi.ktop.com.tw/topic.php?topic_id=54290 【轉貼】Finding MAC address http://delphi.ktop.com.tw/topic.php?topic_id=53021 站内还有其他的信息,小弟未能一一贴上来,您可以自己去找找看,最重要的是自己根据实例实践一翻~ <>~~~静心养德~~~> |
linda_wei
一般會員 發表:44 回覆:31 積分:20 註冊:2004-04-08 發送簡訊給我 |
不曉得醬有沒有問題...
請多指教囉~ int GetIP(void)
{
int sockfd;
struct sockaddr_in *addr;
struct ifreq if_info;
char buff[INET_ADDRSTRLEN];
//----ip
sockfd =socket(AF_INET, SOCK_DGRAM, 0);
strcpy(if_info.ifr_name, "eth0");
ioctl(sockfd, SIOCGIFADDR, &if_info);
addr = (struct sockaddr_in *)&if_info.ifr_addr;
inet_ntop(AF_INET,&addr->sin_addr,buff,sizeof(buff)) ;
close(sockfd);
printf("GetIP=%x=%s\n",addr->sin_addr,buff);
//----mac
sockfd =socket(AF_INET, SOCK_DGRAM, 0);
strcpy(if_info.ifr_name, "eth0");
ioctl(sockfd, SIOCGIFHWADDR, &if_info);
memcpy(buff, if_info.ifr_hwaddr.sa_data, 6);
close(sockfd);
printf("MAC=X,X,X,X,X,X\n",buff[0],buff[1],buff[2],buff[3],buff[4],buff[5]);
printf("GetMac=%s\n",ether_ntoa((struct ether_addr *)buff));
//----mask
sockfd =socket(AF_INET, SOCK_DGRAM, 0);
strcpy(if_info.ifr_name, "eth0");
ioctl(sockfd, SIOCGIFNETMASK, &if_info);
addr = (struct sockaddr_in *)&if_info.ifr_netmask;
inet_ntop(AF_INET,&addr->sin_addr,buff,sizeof(buff)) ;
close(sockfd);
printf("GetMask=%x=%s\n",addr->sin_addr,buff);
//----broadaddr
sockfd =socket(AF_INET, SOCK_DGRAM, 0);
strcpy(if_info.ifr_name, "eth0");
ioctl(sockfd, SIOCGIFBRDADDR, &if_info);
addr = (struct sockaddr_in *)&if_info.ifr_broadaddr;
inet_ntop(AF_INET,&addr->sin_addr,buff,sizeof(buff)) ;
close(sockfd);
printf("GetBcast=%x=%s\n",addr->sin_addr,buff); return 0;
}
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |