gethostbyname函数获取邮箱ip地址

    这段时间做邮箱报警(用tcp登录邮箱--中介邮箱,然后再发送正文和附件到另外一个邮箱),搞得头都大了,而如何获取邮箱ip地址也是一个小难题,呵呵,因为在百度上只能搜到163邮箱的ip,其他的比如139,qq邮箱的都没有,很无奈,在一个高手的指点下,脑袋开了点翘,总算完成了。其实,不难,但想不到就是难,呵呵。快哭了

 

main.c代码

#include <netdb.h>
#include <sys/socket.h>
#include <stdio.h>

int main(void)
{
     char *ptr = "smtp.qq.com";//smtp.163.com  smtp.139.com
     char **pptr;
     struct hostent *hptr;
     char str[32] = {0};
 
      //获取网站信息
      if(NULL == (hptr = gethostbyname(ptr)))
      {
            printf("gethostbyname error for host:%s\n", ptr);
            return -1;
      }
 
      //获取网站名及其别名
      printf("official hostname:%s\n", hptr->h_name);
      for(pptr = hptr->h_aliases; NULL != *pptr; pptr++)
      {
            printf("alias:%s\n", *pptr);
      }
 
      //获取ip地址
      switch(hptr->h_addrtype)
      {
            case AF_INET:
            case AF_INET6:
            {
                 pptr = hptr->h_addr_list;
                 for(; NULL != *pptr; pptr++)
                 {
                       printf("address:%s\n", inet_ntop(hptr->h_addrtype, *pptr, str, sizeof(str)));
                 }
                      printf("first address:%s\n", inet_ntop(hptr->h_addrtype, hptr->h_addr, str, sizeof(str)));
             break;
           }
            default:
             printf("unknow addr type!\n");
      }

 return 0;
}

 

163邮箱结果:
official hostname:smtp.163.gslb.netease.com
alias:smtp.163.com
address:220.181.12.12
address:220.181.12.11
address:220.181.12.15
address:220.181.12.18
address:220.181.12.14
address:220.181.12.13
address:220.181.12.16
address:220.181.12.17
first address:220.181.12.12

 

139邮箱ip地址:
official hostname:smtp.gslb.mail.10086.cn
alias:smtp.139.com
address:113.108.212.80
first address:113.108.212.80

 

qq邮箱ip地址:
official hostname:smtp.qq.com
address:119.147.74.45
address:183.60.55.48
first address:119.147.74.45

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值