c语言域名转ip

用C语言编写一个得到域名IP的程序,得到的IP放入指定的变量中

我可以得出IP,但是不能把IP赋给变量,本人菜鸟一只,学C不到两个月,所以只能做到这了,代码给楼主

#includestdio.h

#includestdlib.h

void main()

{

char str[50],str1[40];

printf(“请输入域名:”);

gets(str1);

sprintf(str,”ping %s”,str1);

system(str);

}

满意就给分,不满意就不用了

c语言域名转ip

用C语言编写一个域名提取的程序,如何选择抓包工具,域名的正则表达式怎么写?

用libpcap这个工具,很强大。

抓包部分在中文手册中有源代码。我就给你讲讲获取域名吧。

首先http包才有域名,并且是你三次握手后第一个包。

包到手后累加14+20+tcp-doff*4后边的信息中有host:*****的消息

14是MAC头 20是ip头 后边那个 是 tcp头 长度(由于tcp头长度不定,但是有标志位的。)

至于怎么提取你自己写吧

C语言中 如何实现域名转换为IP 高分

char cmd[100];

char url[]=””;

char tmp_file_name[]=”tmp.txt”;

FILE *fp;

sprintf(cmd,”nslookup %s %s”,url,tmp_file_name);

system(cmd);

if ( (fp=fopen(tmp_file_name,”r”))==NULL ){

printf(“can not open %s\n”,tmp_file_name);

exit(0);

}

// 然后按行读。跳过前两行。找后面的行。

// 如果某行第一个字符串是Addresses:

// 第二个字符串就是 IP

tmp.txt:

Server: aaaaaaaaaa

Address: nnn.nnn.nnn.nnn

Non-authoritative answer:

Name:

Addresses: 119.75.213.61, 119.75.216.30

Aliases:

如何只用C语言,通过域名得到IP地址

#includestdio.h //printf

#includestring.h //memset

#includestdlib.h //for exit(0);

#includesys/socket.h

#includeerrno.h //For errno – the error number

#includenetdb.h //hostent

#includearpa/inet.h

 

int hostname_to_ip(char *  , char *);

 

int main(int argc , char *argv[])

{

    if(argc 2)

    {

        printf(“Please provide a hostname to resolve”);

        exit(1);

    }

     

    char *hostname = argv[1];

    char ip[100];

     

    hostname_to_ip(hostname , ip);

    printf(“%s resolved to %s” , hostname , ip);

     

    printf(“\n”);

     

}

/*

    Get ip from domain name

 */

 

int hostname_to_ip(char * hostname , char* ip)

{

    struct hostent *he;

    struct in_addr **addr_list;

    int i;

         

    if ( (he = gethostbyname( hostname ) ) == NULL) 

    {

        // get the host info

        herror(“gethostbyname”);

        return 1;

    }

 

    addr_list = (struct in_addr **) he-h_addr_list;

     

    for(i = 0; addr_list[i] != NULL; i++) 

    {

        //Return the first one;

        strcpy(ip , inet_ntoa(*addr_list[i]) );

        return 0;

    }

     

    return 1;

}

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月26日 03:40:06
下一篇 2024年3月26日 03:49:19

相关推荐

  • c语言实现栈或队列结构,c语言队列和栈的区别

    数据结构如何通过C语言来实现,请举例说明,尽可能详细 您好,想要实现一个二叉树,需要用到结构体来存储每个节点的信息,并使用指针来存储每个节点的左右子节点的地址。 这个是堆栈。不管是C还是其他的语言里都应该有的,因为这在数据结构里是一种很常见的东西。如果你要用C语言实现的话,实现的手法大概也就只能从数组或者链表来实现了。数据结构书上很多。也很简单。 数据结构的…

    2024年5月18日
    3700
  • c语言如何向上取整,c+向上取整

    c语言中的取整函数int语句怎么用啊? 1、INT函数是要将数字向下舍入到最接近的整数。语法INT(number)其中number是需要进行向下舍入取整的实数。 2、向上向下,取整函数数只会对小数点后面的。数字不为零的数进行操作。要是给它一个整数 ,它就返回整数本身。对小数不为零的数操作:给定 9。调用用向下取整函数得到的是 4。调用用向上取整函数得到的是 …

    2024年5月18日
    4200
  • c语言九章算数,c语言算术题

    求一个5*5的整型矩阵两条对角线元素之和 1、首先,定义3个整型变量,保存控制数组元素的变量,以及左侧对角线元素的和、右侧对角线元素的和。接着,给数组赋初值,即输入一个5*5方阵。设置suml和sumr的初值为0。 2、您好,很高兴回答您的问题。对于您提出的问题,重点在于要清楚主对角线和副对角线上元素的下标特征,这个主要问题弄清楚了就不难了。 3、,4,5}…

    2024年5月18日
    4700
  • c语言多位数反向输出,c语言反向输出是什么意思

    C语言逆向输出 思路(一):直接用int类型做,判断位数时,当然用循环从小到大循环,用%(模)的方式判断;你的第二第三个问题一起做比较好,用求模和整除的方式分割这个数,然后把分割的每一位数累加到另一个int类型上。 C语言通过输入十个整数然后分别顺序和逆序输出的编程思想和方法如下:首先需要定义一个整型数组用于存储输入的10个整数。这里定义一个数组a。然后利用…

    2024年5月18日
    4300
  • c语言输出16进制,c语言输出16进制字符

    c语言中以十六进位制输出0怎么输出 首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。在test.cpp文件中,输入C语言代码:int a = 127;printf(%x, a); 。编译器运行test.cpp文件,此时成功将数字用十六进制进行了输出。 进制以0x开头,后面跟数字0~9或字母A~F(小写也可以)。如:0x2D(16进制…

    2024年5月18日
    3500
  • c语言画人物,用c语言画画

    使用C语言画笑脸 printf(\1\1\n); 其中\1转化为ASCII码值就是1,而1的字符就是笑脸;219是扩展的ASCII码,其字符就是一个实心的长方形。标准的ASCII码值是0-127,后来扩展了从128-255。 今天在网上看到一个帖子说这个源文件能让一个笑脸移动,但运行起来并没有动,就一个笑脸定在那儿,光标在下面闪。我估计是光标的语句出了问题,…

    2024年5月18日
    3700
  • c语言难在哪里,c语言很难

    c语言最难在什么地方 c语言的难点如下:语言基础难理解。C语言是用来编写操作系统和很多系统中底层部件的一种语言。基础语言理解难度大,但是学习这门语言可以使语言基础稳固。计算机程序运行过程复杂。 c语言最难在它缺乏逻辑性–形式逻辑不成立。例如:char str[]=abcdef;//声明 str 是字符串,初始化成 abcdef。可是,一样是赋值,…

    2024年5月18日
    4400
  • c语言实现霍夫直线检测,霍夫变换检测圆 python

    霍夫直线检测原理 1、如果在图像空间 x – y 中在增加一个点 ,那相应的该点在霍夫空间也会产生相同的点与线的对应关系,并且 A 点与 B 点产生的直线会在霍夫空间相交于一个点。而这个点的坐标值 就是直线 AB 的参数。 2、最基本的霍夫变换是从黑白图像中检测直线(线段)。我们先看这样一个问题:设已知一黑白图像上画了一条直线,要求出这条直线所在…

    2024年5月18日
    3800
  • c语言输入时怎么换行,c语言输入时换行

    在C语言运行出来的黑框框中输入的时候怎么换行? 1、C语言中实际上用任何方法(常规库函数)都无法获取回车。 2、scanf可以手动输入换行,例如输入1 ,回车,2。scanf() 函数的声明:int scanf(const char *format, …)&a、&b、&c 中的 & 是地址运算符,分别获得这三个变量…

    2024年5月18日
    4200
  • c语言计算最长字符串,c语言最长的字符串

    C语言找出最长的字符串。输入5个字符串,输入其中最长的字符串。 1、strcpy(max,str)完成字符串拷贝,strcmp完成字符串比较,只要保留一个for循环,用一个strcmp就解决问题。 2、我是采用了函数调用的方式,可以直接运行,但是事先要自己输入5个字符串。 3、只要求输出最长的,所以没有必要把5个字符串都存储下来。 4、我们在main函数之前…

    2024年5月18日
    4100

发表回复

登录后才能评论



关注微信