码迷,mamicode.com
首页 > 系统相关 > 详细

Linux基础——查看IP及port的简单实现

时间:2014-10-07 16:23:33      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   ar   for   sp   

需要注意,不同的机器,有的可能为大端字节序,有的可能为小端字节序。

小端就是低位字节排放在内存的低地址端即该值的起始地址,高位字节排放在内存的高地址端。

大端就是高位字节排放在内存的低地址端即该值的起始地址,低位字节排放在内存的高地址端。

实现代码如下:

bubuko.com,布布扣
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 #include <sys/socket.h>
 5 #include <netinet/in.h>
 6 #include <arpa/inet.h>
 7 #define IP "180.97.33.107"
 8 int my_aton(char * ip)
 9 {
10     int arr[4];
11     int i;
12     sscanf(ip,"%d.%d.%d.%d",arr,arr+1,arr+2,arr+3);
13     i=(arr[0]<<24)|(arr[1]<<16)|(arr[2]<<8)|arr[3];
14     return i;
15 }
16 char* my_ntoa(int i)
17 {
18     static char buf[1024];
19     memset(buf,0,1024);
20     sprintf(buf,"%d.%d.%d.%d",(i>>24)&0xff,(i>>16)&0xff,(i>>8)&0xff,i&0xff);
21     return buf;
22 }
23 int main(int argc,char *argv[])
24 {
25     int i;
26     i=my_aton(IP);
27     struct in_addr my_add;
28     inet_aton(IP,&my_add);
29     printf("%x\n",i);
30     printf("%x\n",my_add.s_addr);
31     char *buf;
32     buf=my_ntoa(i);
33     printf("%s\n",buf);
34     printf("%s\n",inet_ntoa(my_add));
35 }
View Code

获得本地的IP方法如下:

bubuko.com,布布扣
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
int main(int argc,char *argv[])
{
    struct hostent *p;
    p=gethostbyname(argv[1]);
    char **pp;
    printf("name : %s\n",p->h_name);
    pp=p->h_aliases;
    for(;*pp!=NULL;*pp++)
        printf("alia : %s\n",*pp);
    printf("type : %d\n",p->h_addrtype);
    printf("ip length : %d\n",p->h_length);
    pp=p->h_addr_list;
    for(;*pp != NULL;*pp++)
        printf("ip : %s\n",inet_ntoa(*(struct in_addr*)*pp));
    return 0;
}
View Code

 

Linux基础——查看IP及port的简单实现

标签:style   blog   http   color   io   os   ar   for   sp   

原文地址:http://www.cnblogs.com/gjn135120/p/4009319.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!