3日のMagical Finder対応改善。LANDISK、GT110b、RockDiskNextの3ノード分のメッセージ送信を、クライアントからのUDP/51065トリガーに対してオンデマンドで繰り返すように改修。これをdaemon起動しておけばよさそうだ。
yano@GT110b:~$ cat ~/MagicalFinder/mf_all_nas.py;
# -*- coding: utf-8 -*-
import socket
import sys
MAGICAL_PORT = 51065
###########################################################
# for GT110b (192.168.199.1)
###########################################################
def make_GT110b():
payload = bytearray([0x07,0x4c,0x5f,0x11,0x67,0x00])
payload.extend([0,0,0,0,0,0,0,0])
payload.extend([192,168,199,1]) # NAS ip address
payload.extend([255,255,255,0]) # subnetmask
payload.extend([192,168,199,254]) # gateway
payload.extend([0x00, 0x50]) # length ?
payload.extend([0x94,0xde,0x80,0xXX,0xYY,0xZZ]) # MAC address
payload.extend("GT110b@BRAVOTOURING")
payload.extend([0,0,0,0,0,0])
payload.extend([0,0,0,0,0,0,0,0])
payload.extend([0,0,0,0,0,0,0,0])
payload.extend([0,0,0,0,0,0,0,0])
payload.extend([0,0,0,0,0,0,0,0])
payload.extend([0,0,0,0,0,0,0,0])
payload.extend([0,0,0,0,0,0,0,0])
payload.extend([0,0,0,0,0,0,0,0])
payload.extend("IO-DATA")
payload.extend([0,0,0,0,0,0,0,0,0,0])
return payload;
###########################################################
# for LANDISK-AV (192.168.199.20)
###########################################################
def make_LANDISK():
payload = bytearray([0x07,0x4c,0x5f,0x11,0x67,0x00])
payload.extend([0,0,0,0,0,0,0,0])
payload.extend([192,168,199,20]) # NAS ip address
payload.extend([255,255,255,0]) # subnetmask
payload.extend([192,168,199,254]) # gateway
payload.extend([0x00, 0x50]) # length ?
payload.extend([0x00,0xa0,0xb0,0xXX,0xYY,0xZZ]) # MAC address
payload.extend("LANDISK@WORKGROUP")
payload.extend([0,0,0,0,0,0,0,0])
payload.extend([0,0,0,0,0,0,0,0])
payload.extend([0,0,0,0,0,0,0,0])
payload.extend([0,0,0,0,0,0,0,0])
payload.extend([0,0,0,0,0,0,0,0])
payload.extend([0,0,0,0,0,0,0,0])
payload.extend([0,0,0,0,0,0,0,0])
payload.extend([0,0,0,0,0,0,0,0])
payload.extend("IO-DATA")
payload.extend([0,0,0,0,0,0,0,0,0,0])
return payload;
###########################################################
# for RDN021 (192.168.199.21)
###########################################################
def make_RDN021():
payload = bytearray([0x07,0x4c,0x5f,0x11,0x67,0x00])
payload.extend([0,0,0,0,0,0,0,0])
payload.extend([192,168,199,21]) # NAS ip address
payload.extend([255,255,255,0]) # subnetmask
payload.extend([192,168,199,254]) # gateway
payload.extend([0x00, 0x50]) # length ?
payload.extend([0x00,0x01,0xd2,0xXX,0xYY,0xZZ]) # MAC address
payload.extend("RDN021@BRAVOTOURING")
payload.extend([0,0,0,0,0,0])
payload.extend([0,0,0,0,0,0,0,0])
payload.extend([0,0,0,0,0,0,0,0])
payload.extend([0,0,0,0,0,0,0,0])
payload.extend([0,0,0,0,0,0,0,0])
payload.extend([0,0,0,0,0,0,0,0])
payload.extend([0,0,0,0,0,0,0,0])
payload.extend([0,0,0,0,0,0,0,0])
payload.extend("IO-DATA")
payload.extend([0,0,0,0,0,0,0,0,0,0])
return payload;
#-------------------------------------------------------------------------
# top of send_magical
#-------------------------------------------------------------------------
def send_magical(sock):
dest_address = ('255.255.255.255', MAGICAL_PORT)
# print >>sys.stderr, 'send to %s port %s' % dest_address
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
sock.sendto(make_GT110b(), dest_address)
sock.sendto(make_LANDISK(), dest_address)
sock.sendto(make_RDN021(), dest_address)
return;
#-------------------------------------------------------------------------
# top of main
#-------------------------------------------------------------------------
def main():
# Create a UDP/IP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# Bind the socket to the port
server_address = ('0.0.0.0', MAGICAL_PORT)
print >>sys.stderr, 'starting up on %s port %s' % server_address
sock.bind(server_address)
while True:
data, address = sock.recvfrom(4096)
if 0 < data.find("FROM-PC\x00") :
send_magical(sock)
#-------------------------------------------------------------------------
# end of main
#-------------------------------------------------------------------------
if __name__ == '__main__':
main()
# vim:expandtab:ts=4
yano@GT110b:~$ while true;do python ~/MagicalFinder/mf_all_nas.py; sleep 3;done
【参照】
●AV Watch http://av.watch.impress.co.jp/
┣アイ・オー、PC使わずCDをAndroidスマホにAACでリッピング「CDレコ」 2014年4月9日
┣CDをAndroidスマホに取り込めるアイ・オー「CDレコ」、FLACやCD書込に対応へ 2014年7月1日
┣AndroidスマホでCDリッピングの「CDレコ」が、FLACやCD書出対応 2014年7月22日
┣PC無しでiPhoneに音楽CDを取り込める「CDレコWi-Fi」 2014年8月6日
┣【レビュー】iPhoneで音楽CD取り込みが可能に! ノーPCライフがはかどる「CDレコ Wi-Fi」 2014年8月29日
┣スマホでCDリッピング「CDレコ Wi-Fi」で、iTunes楽曲再生や歌詞表示に対応 2015年1月9日
┣CDからNASに直接保存、PCレスCDリッピングの「CDレコ」がバージョンアップ 2015年3月12日
┗CDリッピングの「CDレコ」Androidアプリ、音楽再生と歌詞表示も可能に 2015年4月2日
●IODATA アイ・オー・データ機器 http://www.iodata.jp/
┣CDレコ Wi-Fi(CDRI-W24AI)
┣音楽CDを直接スマホやタブレットに取り込める「CDレコ」
┣「CDレコ」アプリのバージョンアップで音楽がもっと楽しくなる! 音楽CDは全部NAS(ナス)に取り込んで、家族みんなでお気に入りを共有 2015年3月12日
★「CDレコ」対応情報 >> 「CDレコ」アプリ対応ドライブ・NAS
┣HVL1-G1.5T
┣MagicalFinder
┗Q&A >> 「Magical Finder」で使用しているポート番号を教えてください。
●Python Wiki https://wiki.python.org/
┗UdpCommunication
●価格.com - 「買ってよかった」をすべてのひとに。 http://kakaku.com/
┗IODATA CDレコ Wi-Fi CDRI-W24AI 価格比較
●Amazon.co.jp https://www.amazon.co.jp/
┗I-O DATA iOS&Android対応 音楽CD取り込みドライブ CDRI-W24AI 8,709円