zoukankan      html  css  js  c++  java
  • Linux基础——查看IP及port的简单实现

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

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

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

    实现代码如下:

     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
    ",i);
    30     printf("%x
    ",my_add.s_addr);
    31     char *buf;
    32     buf=my_ntoa(i);
    33     printf("%s
    ",buf);
    34     printf("%s
    ",inet_ntoa(my_add));
    35 }
    View Code

    获得本地的IP方法如下:

    #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
    ",p->h_name);
        pp=p->h_aliases;
        for(;*pp!=NULL;*pp++)
            printf("alia : %s
    ",*pp);
        printf("type : %d
    ",p->h_addrtype);
        printf("ip length : %d
    ",p->h_length);
        pp=p->h_addr_list;
        for(;*pp != NULL;*pp++)
            printf("ip : %s
    ",inet_ntoa(*(struct in_addr*)*pp));
        return 0;
    }
    View Code
  • 相关阅读:
    echarts基础使用
    将数据表中的热词统计结果用echarts热词云展示
    LInux下bash: wget: command not found解决方法
    利用Jieba对txt进行分词操作并保存在数据库中
    idea运行Guns示例demo
    浅谈一下mshta在CVE201711882里的命令构造
    CVE201711882 POC 全版本通杀
    本地复现Flash 0day漏洞(CVE20184878)
    Oracle安装错误
    oracle远程连接服务器出现 ORA12170 TNS:连接超时 解决办法
  • 原文地址:https://www.cnblogs.com/gjn135120/p/4009319.html
Copyright © 2011-2022 走看看