エコデーモンに加えてIPを表示する他の方法はありますか?

エコデーモンに加えてIPを表示する他の方法はありますか?

与えられた文字列の代わりにIPを表示するためにechoデーモンに代わるものはありますか?

例:私のIP = 80.1.2.3

サーバーIP = 1.2.3.4

root@my-machine bash$ telnet 1.2.3.4
Trying 1.2.3.4...
Connected to 1.2.3.4.
Escape character is '^]'.
80.1.2.3

答え1

以下は、あなたが望むものを小さなPythonで実装したものです(実行server.py <port>

#!/usr/bin/env python

import socket
import sys

_, port = sys.argv

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(("0.0.0.0", int(port)))
sock.listen(1)

while True:
    conn, addr = sock.accept()
    ip, port = addr
    conn.send(ip.encode("ascii") + b"\n")
    conn.close()
$ ./server.py 1234 &
[1] 20315
$ nc localhost 1234
127.0.0.1
$

答え2

そしてsocat

socat tcp-listen:12345,reuseaddr,fork system:'echo "$SOCAT_PEERADDR"'

答え3

要するに、いいえ。エコープロトコルについては後述する。RFC 862とてもシンプルで明確です。

TCPベースのエコサービス

エコサービスはTCPベースの接続アプリケーションとして定義されます。サーバーは TCP ポート 7 で TCP 接続をリッスンします。接続が確立されると、受信したすべてのデータが再送信されます。これは、呼び出し側のユーザーが接続を終了するまで続きます。

UDPベースのエコサービス

別のエコーサービスは、UDPベースのデータグラムアプリケーションとして定義されています。サーバーはUDPポート7でUDPデータグラムをリッスンします。データグラムが受信されると、その中のデータが応答データグラムに返送される。

関連情報