.TH "KDK_NET_GET_HOSTS" 3 "Thu Sep 14 2023" "Linux Programmer's Manual" \" .SH NAME kdk_net_get_hosts - 获取hosts配置 .SH SYNOPSIS .nf .B #include .sp .BI "extern char* kdk_net_get_hosts();" .sp Link with \fI\-lkynetinfo\fP. .SH "Detailed Description" The main function of the interface is to obtain the hosts configuration. .SH "RETURN VALUE" On success, returns the hosts configuration of type char *; The returned string needs to be released by .I free .PP On error, return .BR NULL. .SH EXAMPLES .EX #include "libkynetinfo.h" #include "stdio.h" #include "stdlib.h" int main(int argc, char *argv[]) { prouteMapList list = kdk_net_get_route(), tmp = list; while (tmp) { printf("%s default route %s\n", tmp->name, tmp->addr); tmp = tmp->next; } kdk_net_free_route(list); if (argc < 2) printf("please input test port num\n"); else printf("port:%s's state %d\n", argv[1], kdk_net_get_port_stat(atoi(argv[1]))); pChain chain = kdk_net_get_iptable_rules(); pChain tmpchain = chain; while(tmpchain) { printf("Chain: %s\tpolice: %s\n",tmpchain->total,tmpchain->policy); pChainData tmpData = tmpchain->data; if(tmpData) printf("target: %s\tprot: %s\topt: %s\tsource: %s\tdestination: %s\toption: %s\n",tmpData->target,tmpData->prot,tmpData->opt, tmpData->source,tmpData->destination,tmpData->option); printf("\n"); tmpchain = tmpchain->next; } kdk_net_free_chain(chain); int result[65536]; int net = kdk_net_get_multiple_port_stat(0, 1000, result); if(net == 0) { size_t count = 0; for(;count < 1000 ;count++) { printf("%d\t", result[count]); } } else printf("Failed With %d", net); printf("\n"); char mask[32] = "\0"; kdk_net_get_netmask("enaftgm1i0", mask); printf("mask = %s\n", mask); char **port = kdk_net_get_proc_port(); size_t index = 0; while(port[index]) { printf("No.%ld, port = %s\n", index+1, port[index]); index++; } kdk_net_freeall(port); port = kdk_net_get_up_port(); index = 0; while(port[index]) { printf("No.%ld, port = %s\n", index+1, port[index]); index++; } kdk_net_freeall(port); char *hosts = kdk_net_get_hosts(); if (hosts != NULL) { printf("hosts = %s\n", hosts); free(hosts); } char *domain = kdk_net_get_hosts_domain(); if (domain != NULL) { printf("domain = %s\n", domain); free(domain); } char **resolv = kdk_net_get_resolv_conf(); index = 0; while(resolv[index]) { printf("No.%ld, resolv = %s\n", index+1, resolv[index]); index++; } kdk_net_freeall(resolv); return 0; } .SH "CONFORMING TO" These functions are as per the withdrawn POSIX.1e draft specification. The following functions are Linux extensions: .BR kdk_net_get_multiple_port_stat (), .BR kdk_net_get_port_stat (), .BR kdk_net_get_route (), .BR kdk_net_get_iptable_rules (), .BR kdk_net_free_route (), .BR kdk_net_free_chain (), .BR kdk_net_get_netmask (), .BR kdk_net_get_proc_port (), .BR kdk_net_get_up_port (), .BR kdk_net_get_hosts_domain (), .BR kdk_net_get_resolv_conf () and .BR kdk_net_freeall (). .SH "SEE ALSO" .BR kdk_net_get_multiple_port_stat (3), .BR kdk_net_get_port_stat (3), .BR kdk_net_get_route (3), .BR kdk_net_get_iptable_rules (3), .BR kdk_net_free_route (3), .BR kdk_net_free_chain (3), .BR kdk_net_get_netmask (), .BR kdk_net_get_proc_port (3), .BR kdk_net_get_up_port (3), .BR kdk_net_get_hosts_domain (3), .BR kdk_net_get_resolv_conf (3) and .BR kdk_net_freeall (3).