• ベストアンサー

IO::Socket::INET で tcp が Bad protocol

Perl 5.6.1 on Debian linux です。 LDAP+Sambaでsmbldap-toolsを使おうとしています。 が、その中のPerlスクリプトで IO::Socket::INET: Bad protocol 'tcp' というエラーが発生しています。tcp が Bad protocol な ことなんてあるんでしょうか?あるいは別に必要な モジュールあるいはパッケージがあるんでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

IO/Socket/INET.pmを見てみると、getprotobyname()が値を返さないとダメみたいです。 perl -e 'print join(":",getprotobyname( "tcp" ))' ――の結果を確認されてみては。

参考URL:
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/getprotoent.3.html
tao_0077
質問者

お礼

失礼しました。Google検索で自己解決してしまいました。 nsswitch.conf 内の protocols が LDAP を参照するようになっていました。デフォルトのまま使ってたんですが、その後に files があるので大丈夫と思ってしまいました。 ともあれ、ありがとうございました。