私がやりたいことはTelnet経由で接続してデータベースをダウンロードすることですが、方法が見つかりません。私はPythonで試しましたが、接続を閉じるだけでbashスクリプトを使用して実行する方法があるかどうか疑問に思います。
もちろん、何が起こるのかは、それが入力チェッカーであり、それに接続する唯一の方法はTelnet経由です。私が知っているのは最高ではありませんが、それが最善です。
通訳者を想定して接続を確立し、デバイスの周りを移動してこのコマンドを実行できるようになりました。
これは私のコードです
#!/usr/bin/expect
set timeout 20
set name 192.168.1.169
set user "root"
set passwd "solokey"
spawn telnet $name
expect "ZMM100 login: "
send "$user\r"
expect "Password: "
send "$passwd\r"
expect "#"
send "cd /mnt/mtdblock/data/ \r"
expect "#"
send "rm -rf ZKDB.db.bak \r"
expect "#"
send "cp ZKDB.db ZKDB.db.bak \r"
expect "#"
send "cat ZKDB.db.bak | nc -l -p 6666 \r"
expect "#"
答え1
Telnetがトランスポートサービスではなく、データにアクセスできる唯一のオプションであることがわかります。誰かに役立つ場合に備えてコードをアーカイブしました。この方法でTelnet経由でバイオメトリックチェッカーにアクセスするためにデータベースをダウンロードしました。
#!/usr/bin/expect
set timeout 20
set name 192.168.1.169
set user "root"
set passwd "solokey"
spawn telnet $name
expect "ZMM100 login: "
send "$user\r"
expect "Password: "
send "$passwd\r"
expect "#"
send "cd /mnt/mtdblock/data/ \r"
expect "#"
send "rm -rf ZKDB.db.bak \r"
expect "#"
send "cp ZKDB.db ZKDB.db.bak \r"
expect "#"
send "cat ZKDB.db.bak | nc -l -p 6666 \r"
expect "#"
すでに私たちが実行しているクライアント側でのみ
nc 192.168.1.169 6666 <ZKDB.db.bak
答え2
Telnetはリモートコマンドランチャーなので、FTPクライアントとしては適していません。
あなたができるのはただ残すだけです。インターネット猫ローカルポートでリッスンし、リモートホストにTelnetで接続し、netcatを使用してローカルポートからリモートファイルを送信し、出力をローカルファイルにリダイレクトします。
ローカルホストから:
nc -l -p <port> > <output_file>
リモートコンピュータでTelnetを使用して、次のコマンドを実行します。
nc -w 3 <local_host_ip> <port> < <input_file>
また、ssh、ftpを使用できないため、httpサーバー(インストールされている場合はPython SimpleHTTPServerを使用)またはリモートサーバー上のすべてのhttpサーバーを公開してから、wgetを使用してファイルをダウンロードできます。
リモートホストから:
cd <to_the_directory_to_expose>
python -m SimpleHTTPServer
ローカルマシンで:
wget http://<remote_host_ip>:8000/<filename>