.TH "KDK_NET_GET_ROUTE" 3 "Thu Sep 14 2023" "Linux Programmer's Manual" \" .SH NAME kdk_net_get_route - 获取网关信息 .SH SYNOPSIS .nf .B #include .sp .BI "extern prouteMapList kdk_net_get_route();" .sp Link with \fI\-lkynetinfo\fP. .SH "Detailed Description" The main function of the interface is to obtain gateway information. .SH "RETURN VALUE" On success, returns a pointer to a .I prouteMapList structure containing gateway information. .PP The .I route structure is defined in .I as follows: typedef struct route { char name[32]; //网卡名 char addr[16]; //网关地址 struct route *next; } routeMapList, *prouteMapList; .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_netmask (), .BR kdk_net_get_port_stat (), .BR kdk_net_get_multiple_port_stat (), .BR kdk_net_get_iptable_rules (), .BR kdk_net_free_route (), .BR kdk_net_free_chain (), .BR kdk_net_get_proc_port (), .BR kdk_net_get_up_port (), .BR kdk_net_get_hosts (), .BR kdk_net_get_hosts_domain (), .BR kdk_net_get_resolv_conf () and .BR kdk_net_freeall (). .SH "SEE ALSO" .BR kdk_net_get_netmask (3), .BR kdk_net_get_port_stat (3), .BR kdk_net_get_multiple_port_stat (3), .BR kdk_net_get_iptable_rules (3), .BR kdk_net_free_route (3), .BR kdk_net_free_chain (3), .BR kdk_net_get_up_port (3), .BR kdk_net_get_hosts (3), .BR kdk_net_get_hosts_domain (3), .BR kdk_net_get_resolv_conf (3) and .BR kdk_net_freeall (3).