授業課題でTCPパケットの中身を出力するプログラムを作成しようとしており,C言語でgetservbyportを利用したいのですが,NULLしか返ってきません.どのようにすれば解決できるでしょうか?
以下が,現状のソースコードの一部です.getservbyportを利用する関数のみを記載しております.
C
1/* #################### 2* TCPの詳細を出力する 3* #################### */ 4void print_tcp(u_char *packet, int n) { 5 // 送信元ポート 6 int S_PORT = packet[n]*256 + packet[n+1]; n+=2; 7 struct servent *s_serv = getservbyport(S_PORT, NULL); 8 if(!s_serv) printf("(?)\n"); 9 else printf("(%s)\n", s_serv->s_name); 10 11 // 宛先ポート 12 int D_PORT = packet[n]*256 + packet[n+1]; n+=2; 13 struct servent *d_serv = getservbyport(D_PORT, NULL); 14 if(!d_serv) printf("(?)\n"); 15 else printf("(%s)\n", d_serv->s_name);
packetはpcap.hのpcap_next()で取得したパケットです.
getservbyport(22, NULL)などと具体的な数値を指定してもNULLでした.
ご助言いただければ助かります.
不足している情報があれば,ご指摘いただければ追記いたします.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/14 08:06
2020/01/14 08:49