- 締切済み
iremocon wifi とtelnetについて
iremocon wifi にmacのターミナルよりtelnetで命令を送り操作するところまでは できたのですが、これをautometorで自動化したくてもできません。 具体的には、 telnet 192.168.24.61 51013 とターミナルで入力すると普通にtelnetが使えるのですが、 同じコードをautometorの「シェルスクリプト」に入力してとりあえず実行すると、 Connection closed by foreign host.と出て次に行けないです。 ターミナルに直接書いて実行すると正常に動くのに、autometorに入力するとできません。 僕自身はプログラムはできなくて、iremoconを活用しようとしてmacのターミナルに 今回初めて触れるレベルの初心者です。一応ネットでautometorでtelnetを実行してる人が いないか探してみましたが、わかりませんでしたので、ご教授お願いしたいです。 それとこれとは別にちょっと疑問なんですが、iremoconにtelnet接続するときに ポート番号の指定が必要でした。(51013)しかしiremoconもmacも僕の自宅lan内に いるのにポート番号指定しないといけないのがちょっと不思議でした。今まで外部から lan内の機器にアクセスするときにポートの開放って言葉で聞いたことはあったんですけど、 lan内の機器どうし間でもポート番号指定は必須なんですか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- inshin
- ベストアンサー率59% (13/22)
telnetは対話型コマンドです。automatorに実行させている時点で対話性はなくなりますので、 telnet 192.168.24.61 51013 の1行でコマンドをquitしたのと同じことになります。 automatorで実行したい場合は、echoとncコマンドで実現できるようです。 telnetの標準ポート番号は23です。ポート番号を指定しないで接続する場合は、クライアント側で自動的にデフォルトのTCPの23番ポートで接続を試行します。ポート番号が標準の23ではない理由はおそろくセキュリティ対策でiRemocon側が変更したのでしょう。
- wormhole
- ベストアンサー率28% (1626/5665)
>今まで外部からlan内の機器にアクセスするときにポートの開放って言葉で聞いたことはあったんですけど、lan内の機器どうし間でもポート番号指定は必須なんですか? TCPやUDPなどの通信プロトコルを用いる限りポート指定は必須です。 おそらく必須のように思われないのはtelnetやhttpで通常使用するときにはポート指定することがないからでしょうが、ユーザーが指定しなくてもプログラム内部で指定してます。 ポート開放は、その指定したポートがルーターやファイヤーウォールで塞がれている場合にルーターやファイアーウォールに対して行うことです。
補足
ご回答ありがとうございます。追加の質問で大変恐縮なのですけれども、なぜLAN内のコンピューター間通信でもポートの指定が必要なのかと言うその理由間でもしご存知でしたら教えていただけないでしょうか。 telnetの送信元端末からiremoconに対して要求を送った時点で、その要求はiremoconに到達しているはずなので特別にポートを指定しなくても通信は可能なんじゃないかと、素朴に思ってしまいました。