我在客户端App上执行“SHOW PROCESSLIST”。
它给出了输出:
当我查看主机列时,它在行中显示为“WIN-R2VUKMIS1PR:54822”
如何了解主机IP是什么“WIN-R2VUKMIS1PR:54822”......
我正在写一个执行“SHOW PROCESSLIST”的程序 并显示所有连接主机的输出。
那么如何将主机名解析为IP?我尝试使用
这是我用来将“WIN-R2VUKMIS1PR:54822”转换为IP的演示应用程序:
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main(int argc, char *argv[ ]) {
struct hostent *h;
/* error check the command line */
if(argc != 2) {
fprintf(stderr, "Usage: %s hostname\n", argv[0]);
exit(1);
}
/* get the host info */
if((h=gethostbyname(argv[1])) == NULL) {
herror("gethostbyname(): ");
exit(1);
}
else {
printf("Hostname: %s\n", h->h_name);
printf("IP Address: %s\n", inet_ntoa(*((struct in_addr *)h->h_addr)));}
return 0;
}
我错过了什么吗? : - )
答案 0 :(得分:2)
您可以使用gethostbyname_r - 查找匹配主机名的网络主机数据库条目。 但请注意,它已被弃用。如果您的应用程序正在上线,请小心。
另外,我不确定它是否对您有帮助。