netcat放送について

netcat放送について

私はmacOSとgnu netcatを使っています。 netcatを使ってメッセージをブロードキャストする方法を知りたいです。

netcat4555で聞いています。

netcat -l -p 4555 192.168.0.101

しかし、放送メッセージを送信しようとすると

netcat 192.168.0.255 4555しかし、私は間違いを犯します。

Error: Couldn't create connection (err=-5): Permission denied

次のエラーが発生します。

Error: Couldn't create connection (err=-5): Permission denied

これ次の投稿私はうまくいきますが、netcat-traditional私はこれを行うためにGNU netcatを実行しています。ここではこれが重要です。

ベストアンサー1

ポイントを獲得しようとしています。

  • TCPはブロードキャストには適していません。

    TCPを使用してブロードキャストIPアドレスに接続することはできません。インターネット猫UDPを使用するように指示されていない限り、デフォルトではTCPが使用され、これらの試みはエラーが発生しやすいです。

  • UDPブロードキャストにはフラグ設定が必要ですが、GNU netcatはそれを処理しません。

    これはBSDソケットAPIとその拡張が通過することですsetsockopt(2)SO_BROADCAST(ブロードキャストをサポートするプロトコルの場合)ブロードキャストIPv4アドレスにパケットを送信できる必要があります。それ以外の場合はエラーが発生します。これGNU netcatソースコードどこにも文字列を含めないでくださいSO_BROADCAST

したがって、GNU netcatではブロードキャストを送信することはできません。別のツールに切り替える必要があります。または他の変形インターネット猫(周囲に複数個あります)または使用socatより多くの機能があります。これはおおよそsocat(マルチキャストおよび)ブロードキャストで使用。 (明らかに)GNU netcatのトンネルモードのように両側にソケットがある場合を処理します。

おすすめ記事