getservbynameの使い方
サンプルソース (getservbyname_sample.c)
#include <stdio.h> #include <netdb.h> /* getservbyname() */ int main(int argc, char **argv) { struct servent *n; if(argc == 1) { printf("usage: %s protocol_name\n", argv[0]); return 1; } if((n = getservbyname(argv[1], "tcp")) == NULL) { printf("%s is unknown.\n", argv[1]); } else { printf("s_name = %s\n", n->s_name); printf("s_port = %d\n", htons(n->s_port)); } return 0; }
コンパイル方法
$ gcc -o getservbyname_sample ./getservbyname_sample.c
実行方法
引数にプロトコルを入れると、名称とポート番号が表示されます。
% ./gethostbyname_sample http s_name = www s_port = 80 % ./gethostbyname_sample ftp s_name = ftp s_port = 21 % ./gethostbyname_sample ssh s_name = ssh s_port = 22 % ./gethostbyname_sample pop pop is unknown. % ./gethostbyname_sample pop3 s_name = pop3 s_port = 110 % ./gethostbyname_sample imap s_name = imap2 s_port = 143
参考
- man getservbyname