2011-05-31 28 views
0

我有一台dvr。有些相机连接到它。 可以通过互联网上的网页浏览器访问dvr。 dvr受用户名和密码保护。 如何连接到网络服务器而无需每次输入登录名和密码? 有一种方法可以在PHP中执行它? 我用这个脚本访问由php密码保护的远程DVR

<? 
$username = "xxxx"; 
$password = "aaaa"; 

$base_url = "http://myip/cgi-bin/slogin/login.py"; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $base_url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
$output = curl_exec($ch); 
$info = curl_getinfo($ch); 
print_r($info); 
curl_close($ch); 
?> 

当我连接,我得到的print_r的细节,但没有别的:

Array ([url] => http://xx.xx.xxx.xx/cgi-bin/slogin/login.py [content_type] => text/html; charset=iso-8859-1 [http_code] => 200 [header_size] => 225 [request_size] => 121 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0.823264 [namelookup_time] => 0.00104 [connect_time] => 0.120289 [pretransfer_time] => 0.120435 [size_upload] => 0 [size_download] => 1515 [speed_download] => 1840 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => -1 [starttransfer_time] => 0.690632 [redirect_time] => 0 [certinfo] => Array ()) 

我看到有一个200 OK,所以我想连接的罚款。但如何继续?我要进入weserver的网站吗?

+1

你想达到什么目的?其不清楚你的问题 – 2011-05-31 23:25:04

回答

-1

试试这个:

$base_url = "http://" . $username . ":" . $password . "@myip/cgi-bin/slogin/login.py";

...代替curl_setopt调用。这应该希望随着uri的改变而保持现状。

+0

谢谢,但没有成功。所有浏览器的结果都一样。 – giuseppe 2011-06-01 07:36:09

+0

我的意思是,我无法将密码传递给网络服务器。我认为它使用某种插件的登录表单...我怎么知道如何通过curl传递登录字符串? Wireshark适合吗? – giuseppe 2011-06-01 07:44:01

+0

我发现了。登录页面是一个简单的登录表单。我必须通过在curl中使用POST方法来传递证书。任何建议? – giuseppe 2011-06-01 09:14:24