[ruby-list:50363] [質問] Ruby socket.send でUDP Packet が出ない? ネットワーク環境によるものか?
From:
<yamataka@...08.itscom.net>
Date:
2016-07-27 11:30:29 UTC
List:
ruby-list #50363
山口と申します。
Ruby UDP Packet が出ない? という症状に遭遇しております。
ネットワーク環境によるものかとも思いますが、アドバイスいただければ幸いで
す。
1.Wi-Fi AP/ルータ 192.168.0.1
外部ネットワーク繋がず
IPv6パススルー機能無効
2.PC Laptop 192.168.0.134
Wi-Fiルータ有線接続
Wi-Fi機能OFF
[補足]
セキュリティソフトMcAfee ファイアウォール無効
Intel UPnPツールからのDevice Spyにて、DLNA機器応答はする
3.DLNA機器 192.168.0.102
Wi-Fiルータ有線接続
IPv6機能無効
の構成にてローカルなネットワークを構築、
Ruby Gem easy_upnp https://github.com/sidoh/easy_upnp
に付属の upnp-list スクリプト https://github.com/sidoh/easy_upnp/blob/master/bin/upnp-list
を実行すると、
yama@JPC20165182:~/bin/UPnP$ ./upnp-list
Starting SSDP search...
のまま何も返ってこず、blockした状態になります。
https://github.com/sidoh/easy_upnp/blob/master/lib/easy_upnp/ssdp_searcher.rb
の42行目 下記抜粋
socket.send で、Packetが出ていないように見えます。
Packet Monitor ToolのWiresharkにて ip.addr == 192.168.0.134 (LaptopのIP
src/dest)で確認しましたが
ssdp_search.rb の抜粋部分
# Send M-SEARCH packet over UDP socket
option(:repeat_queries).times do
socket.send packet, 0, MULTICAST_ADDR, MULTICAST_PORT
end
raw_messages = []
# Wait for responses. Timeout after a specified number of seconds
begin
puts "#{__FILE__},#{__LINE__}"
Timeout::timeout(option :timeout) do
loop do
raw_messages.push(socket.recv(4196))
debug用として入れた、puts "#{__FILE__},#{__LINE__}" の出力以降、何も返っ
てきません。
Intel UPnP Tool "Device Spy" というツールで同様な処理を実行すると、各
DLNA機器から応答が返ってくるので、
Rubyスクリプトのsocketに起因しているようにも思えます。
ちなみに、社内ネットワークに、Laptopと異なるPCからupnp-listスクリプトを
実行すると、
ネットワーク上のDLNA機器からは応答が返って来て、スクリプトが正常に実行さ
れるので、
ネットワーク環境にも依存しているのかなとも思いますし...
自身では、解決に至らないので、このスクリプトが正しく動くようにするには、
どうすればよいかアドバイスいただければ幸いです。
下記にLaptopのipconfig の情報をつけておきます。
C:\Users\0000910700>ipconfig /all
Windows IP 構成
ホスト名. . . . . . . . . . . . . . .: JPC20165182
プライマリ DNS サフィックス . . . . .: jp.foo.com
ノード タイプ . . . . . . . . . . . .: ハイブリッド
IP ルーティング有効 . . . . . . . . .: いいえ
WINS プロキシ有効 . . . . . . . . . .: いいえ
DNS サフィックス検索一覧. . . . . . .: jp.foo.com
Planex
foo.com
Wireless LAN adapter ローカル エリア接続* 2:
メディアの状態. . . . . . . . . . . .: メディアは接続されていません
接続固有の DNS サフィックス . . . . .:
説明. . . . . . . . . . . . . . . . .: Microsoft Wi-Fi Direct Virtual
Adapter
物理アドレス. . . . . . . . . . . . .: 34-02-86-F7-2E-B7
DHCP 有効 . . . . . . . . . . . . . .: はい
自動構成有効. . . . . . . . . . . . .: はい
Wireless LAN adapter Wi-Fi:
メディアの状態. . . . . . . . . . . .: メディアは接続されていません
接続固有の DNS サフィックス . . . . .:
説明. . . . . . . . . . . . . . . . .: Intel(R) Dual Band Wireless-AC
7265
物理アドレス. . . . . . . . . . . . .: 34-02-86-F7-2E-B6
DHCP 有効 . . . . . . . . . . . . . .: はい
自動構成有効. . . . . . . . . . . . .: はい
イーサネット アダプター イーサネット:
接続固有の DNS サフィックス . . . . .: Planex
説明. . . . . . . . . . . . . . . . .: Realtek PCIe GBE Family
Controller
物理アドレス. . . . . . . . . . . . .: CC-30-80-10-D2-76
DHCP 有効 . . . . . . . . . . . . . .: はい
自動構成有効. . . . . . . . . . . . .: はい
リンクローカル IPv6 アドレス. . . . .: fe80::55c2:834f:11be:a5c9%3(優
先)
IPv4 アドレス . . . . . . . . . . . .: 192.168.0.134(優先)
サブネット マスク . . . . . . . . . .: 255.255.255.0
リース取得. . . . . . . . . . . . . .: 2016年7月27日 19:08:51
リースの有効期限. . . . . . . . . . .: 2016年7月28日 3:08:51
デフォルト ゲートウェイ . . . . . . .: 192.168.0.1
DHCP サーバー . . . . . . . . . . . .: 192.168.0.1
DHCPv6 IAID . . . . . . . . . . . . .: 63713408
DHCPv6 クライアント DUID. . . . . . .: 00-01-00-01-1D-C8-AF-9C-CC-30-
80-10-D2-76
DNS サーバー. . . . . . . . . . . . .: 192.168.0.1
NetBIOS over TCP/IP . . . . . . . . .: 有効
Tunnel adapter isatap.Planex:
メディアの状態. . . . . . . . . . . .: メディアは接続されていません
接続固有の DNS サフィックス . . . . .: Planex
説明. . . . . . . . . . . . . . . . .: Microsoft ISATAP Adapter
物理アドレス. . . . . . . . . . . . .: 00-00-00-00-00-00-00-E0
DHCP 有効 . . . . . . . . . . . . . .: いいえ
自動構成有効. . . . . . . . . . . . .: はい