socket学习笔记——获取域名与IP(linux)

时间:2022-01-01 12:00:06

gethostbyname.c

 #include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <arpa/inet.h>
#include <netdb.h> int main(int argc,char* argv[])
{
int i;
struct hostent* host;
if(argc != )
{
printf("usage: %s <addr>\n",argv[]);
exit();
} host = gethostbyname(argv[]);
if(!host)
{
printf("get host error......\n");
exit();
}
printf("official name:%s\n",host->h_name);
for(i = ;host->h_aliases[i];i++)
printf("access %d; %s\n",i+,host->h_aliases[i]);
printf("address type:%s \n",(host->h_addrtype==AF_INET)?"AF_INET":"AFINET6");
for(i = ;host->h_addr_list[i];i++)
printf("IP addr %d: %s \n",i+,inet_ntoa(*(struct in_addr*)host->h_addr_list[i]));
return ;
}

gethostbyaddr.c

 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <netdb.h> int main(int argc,char* argv[])
{
int i;
struct hostent* host;
struct sockaddr_in addr;
if(argc != )
{
printf("usage :%s <ip>\n",argv[]);
exit();
} memset(&addr,,sizeof(addr));
addr.sin_addr.s_addr = inet_addr(argv[]);
host = gethostbyaddr((char*)&addr.sin_addr,,AF_INET);
if(!host)
{
printf("get host error\n");
exit();
} printf("official name;%s \n",host->h_name);
for(i = ;host->h_aliases[i];i++)
printf("aliases %d:%s\n",i,host->h_aliases[i]);
printf("address type:%s\n",(host->h_addrtype==AF_INET)?"AF_INET":"AF_INET6");
for(i = ;host->h_addr_list[i];i++)
printf("IP addr %d;%s\n",i+,inet_ntoa(*(struct in_addr*)host->h_addr_list[i]));
return ;
}

socket学习笔记——获取域名与IP(linux)的更多相关文章

  1. Linux&&num;160&semi;学习笔记之超详细基础linux命令&lpar;the&&num;160&semi;end&rpar;

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 14---------------- ...

  2. Linux&&num;160&semi;学习笔记之超详细基础linux命令&&num;160&semi;Part&&num;160&semi;14

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 13---------------- ...

  3. Linux&&num;160&semi;学习笔记之超详细基础linux命令&&num;160&semi;Part&&num;160&semi;13

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 12---------------- ...

  4. Linux&&num;160&semi;学习笔记之超详细基础linux命令&&num;160&semi;Part&&num;160&semi;12

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 11---------------- ...

  5. Linux&&num;160&semi;学习笔记之超详细基础linux命令&&num;160&semi;Part&&num;160&semi;11

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 10---------------- ...

  6. Linux&&num;160&semi;学习笔记之超详细基础linux命令&&num;160&semi;Part&&num;160&semi;10

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 9----------------- ...

  7. Linux&&num;160&semi;学习笔记之超详细基础linux命令&&num;160&semi;Part&&num;160&semi;9

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 8----------------- ...

  8. Linux&&num;160&semi;学习笔记之超详细基础linux命令&&num;160&semi;Part&&num;160&semi;8

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 7----------------- ...

  9. Linux&&num;160&semi;学习笔记之超详细基础linux命令&&num;160&semi;Part&&num;160&semi;7

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 6----------------- ...

随机推荐

  1. MS SQL巡检系列&mdash&semi;&mdash&semi;检查外键字段是否缺少索引

    前言感想:一时兴起,突然想写一个关于MS SQL的巡检系列方面的文章,因为我觉得这方面的知识分享是有价值,也是非常有意义的.一方面,很多经验不足的人,对于巡检有点茫然,不知道要从哪些方面巡检,另外一方 ...

  2. openssl之rsa

    格式 openssl rsa [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in filename] [-passin arg] [-out filen ...

  3. pthread&lowbar;create传递参数

    转自:http://blog.csdn.net/yeyuangen/article/details/6757525 #include <iostream> #include <pth ...

  4. &lbrack;Jacky&rsqb; Stoe load reload 区别

    load( Object options ) : Boolean 采用配置好的Reader格式去加载Record缓存,具体请求的任务由配置好的Proxy对象完成. reload( Object opt ...

  5. karma&plus;jasmine自动化测试

    1.安装nodejs,进入项目目录 2.安装karma和相关插件 npm install karma --save-dev npm install karma-jasmine karma-chrome ...

  6. Linux常用的网络命令

    这些命令都是我在浏览网页的时候偶然看到的,但是不太完整,所以我就整理了一下,详见如下. 1.查看网络接口状态 ifconfig(interface configuration,接口配置),通常会加上- ...

  7. Java基础 - 线程(一)

    一.什么是线程 首先,介绍一下线程.进程的概念. 进程是操作系统分配资源的最小单元,线程是操作系统调度的最小单元.进程是指运行中的应用程序,Windows任务管理器进程窗口看到的每一项都是一个进程.每 ...

  8. ldap命令

    ldapadd  -x   进行简单认证 -D   用来绑定服务器的DN -h   目录服务的地址 -w   绑定DN的密码 -f   使用ldif文件进行条目添加的文件 -W 交互式输入DN的密码 ...

  9. vscode使用集

    abotteram.typescript-react-snippets-0.1.9akamud.vscode-javascript-snippet-pack-0.1.5alechp.react-too ...

  10. 用汇编语言(ARM 32位)编写TCP Bind Shell的菜鸟教程

    用汇编语言(ARM 32位)编写TCP Bind Shell的菜鸟教程 来源 https://www.4hou.com/info/news/9959.html Change 新闻 2018年1月19日 ...