Linux网络编程:gethostbyname()的应用
来源:互联网 发布:java实现支付功能 编辑:程序博客网 时间:2024/04/27 20:02
主程序:gethostbyname.c
- #include <netdb.h>
- #include <string.h>
- #include <stdio.h>
- int main(int argc, char *argv[])
- {
- if (argc != 2)
- {
- printf("Usage:%s domain_name\n", argv[0]);
- return 1;
- }
- struct hostent *ht = NULL;
- // char host[20] = "www.google.com";
- // ht = gethostbyname(host);
- ht = gethostbyname(argv[1]);
- if (ht)
- {
- int i = 0;
- printf("Host:%s \n", argv[1]); /* 原始域名 */
- printf("Name:%s\n", ht->h_name); /* 名称 */
- /*协议族AF_INET为IPv4或者AF_INET6为IPv6 */
- printf("Type:%s\n", ht->h_addrtype == AF_INET ? "AF_INET" : "AF_INET6");
- /* IP地址的长度 */
- printf("Legnth:%d\n", ht->h_length);
- /* 打印IP地址 */
- printf("\n");
- printf("IP Address:\n");
- for (i = 0;; i++)
- {
- if (ht->h_addr_list[i] != NULL)
- { /* 不是IP地址数组的结尾 */
- printf("IP:%s\n", inet_ntoa((unsigned int *)ht->h_addr_list[i])); /*打印IP地址 */
- }
- else
- { /*达到结尾 */
- break; /*退出for循环 */
- }
- }
- /* 打印域名地址 */
- printf("\n");
- printf("Domain Name:\n");
- for (i = 0;; i++)
- { /*循环 */
- if (ht->h_aliases[i] != NULL)
- { /* 没有到达域名数组的结尾 */
- printf("alias %d:%s\n", i, ht->h_aliases[i]); /* 打印域名 */
- }
- else
- { /*结尾 */
- printf("\n");
- break; /*退出循环 */
- }
- }
- }
- return 0;
- }
- CC = gcc
- all:app
- app: gethostbyname.o
- $(CC) gethostbyname.o -o app
- clean:
- rm -f app *.o
运行效果:
[root@ShiGuang gethostbyname]# make
gcc -c -o gethostbyname.o gethostbyname.c
gcc gethostbyname.o -o app
[root@ShiGuang gethostbyname]# ls
app gethostbyname.c gethostbyname.o Makefile
[root@ShiGuang gethostbyname]# ./app www.google.com.hk
Host:www.google.com.hk
Name:www-hk.l.google.com
Type:AF_INET
Legnth:4
IP Address:
IP:72.17.67.8
IP:80.17.67.8
IP:88.17.67.8
IP:96.17.67.8
IP:104.17.67.8
IP:112.17.67.8
Domain Name:
alias 0:www.google.com.hk
[root@ShiGuang gethostbyname]#
0 0
- Linux网络编程:gethostbyname()的应用
- linux网络编程五:gethostbyname, getservbyname
- windows网络编程 gethostbyname()
- linux网络-gethostbyname
- 【C语言】linux网络编程—hostent结构体,gethostbyname的使用
- Linux网络编程 (获取ip地址 gethostbyname)
- 网络编程:gethostbyname()测试程序
- 网络编程 -- gethostbyname() 函数解析
- Unix网络编程 gethostbyname函数
- 网络编程学习笔记(gethostbyname函数)
- linux网络编程5:gethostbyname&&向固定地址发起请求得到返回页面字符
- Linux网络编程 - UDP网络编程应用
- LINUX 下,编程自学七:gethostbyname
- linux应用之--网络编程
- Linux下的网络函数gethostbyname/gethostbyaddr会访问DNS吗?
- linux网络编程之socket(七):一个进程发起多个连接和gethostbyname等函数
- linux网络编程之socket(七):一个进程发起多个连接和gethostbyname等函数
- linux网络编程之socket(七):一个进程发起多个连接和gethostbyname等函数
- JavaScript中的nodeName nodeType nodeValue区别
- 生育 晚育津贴
- 网站关停之后SEO资源怎么办?
- 初识hash
- 一个可直接用的赫夫曼源代码
- Linux网络编程:gethostbyname()的应用
- 全国213个5A景区(截至2016年01月01日)
- Windws OS 一些概念
- spring基础学习之IoC-资源访问(五)
- Linux网络编程:TCP服务器(多进程)
- Codeforces Round #242 (Div. 2) (A、B、C)
- Timus 1723. Sandro's Book 题解
- Spring AOP(二、注解配置实现)
- 线程、进程 的创建