我想通過它的Telnet功能訪問攝像機。問題是,它有密碼保護。這在通過終端進行時沒有問題,因爲我只是使用telnet 10.30.blah.blah
,然後在出現提示時輸入我的密碼。但在PHP中,我沒有看到輸入密碼的機會。如何使用fsockopen()以密碼打開Telnet連接?
$con = fsockopen("10.30.blah.blah", 25);
$msg = "camera move left";
fwrite($con, $msg);
有人有什麼想法嗎?
UPDATE:我試着用@ffreak說fputs輸出密碼,但仍然無濟於事。如果我確實在劇本中嘗試了終端,它就會起作用。下面是現在的代碼:
$con = fsockopen("10.30.blah.blah", 23, $errno, $errstr, 30);
$pass = "admin";
sleep(5);
fputs($con, $pass);
sleep(5);
$msg = "camera move left";
fputs($con, $msg);
UPDATE:發現我需要一個\r
我$msg
變量的末尾。謝謝您的幫助!
爲什麼睡覺?爲什麼不檢查提示是否實際出現(已收到)而不是使用競爭條件? – netcoder 2011-06-08 14:26:41
@netcoder - true。我沒有說得很清楚。人們需要檢查它,如果它沒有出現就進入睡眠狀態,然後再次檢查,直到它達到或者達到某種超時。希望預構建的模塊可以處理所有這些:) – Cfreak 2011-06-08 14:29:36
@netcoder如何檢查提示? – AndyL 2011-06-08 15:30:45