1

curl を出力しようとしています。そのアドレスに出力されるのは基本的なテキスト文字列です。

私はこのコードを実行していますが、動作していませんが、27017 を取り出してメイン ドメインをロードすると正常に動作します。

$cookie_file_path = "cookiejar.txt"; 
$fp = fopen("$cookie_file_path","w");
fclose($fp);
$LOGINURL = "http://www.myserver.org:27017";
$agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$LOGINURL);
    curl_setopt($ch, CURLOPT_USERAGENT, $agent);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
    $result = curl_exec ($ch);
echo $result;

なぜそれが機能しないのですか?どんな助けでも大歓迎です。関連するかどうかはわかりませんが、Web サーバーは、27017 ポートで出力するアプリと同じマシンで実行されています。

アップデート:

$cookie_file_path = "cookiejar.txt"; 
$username = "myusername";
$password = "mypassword";
$LOGINURL = "http://www.myserver.org";
$agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$LOGINURL);
    curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
    curl_setopt($ch, CURLOPT_PORT , "27017");
    curl_setopt($ch, CURLOPT_USERAGENT, $agent);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
    $result = curl_exec ($ch);

echo $result;

更新 2:

解決しました。

この特定のインスタンスにはダイジェスト認証が必要であることが判明しました。

curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);

問題を解決しました...

実際にユーザー/パスが必要であることを認識させてくれたBarmarに感謝します。

4

1 に答える 1

0

リンクをクリックすると、ユーザー名とパスワードを求められます。CURLOPT_USERPWDこれを提供するには、オプションを使用する必要があります。

$username = 'XXX';
$password = 'YYY';

curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");

実行したときに得られる結果は次のとおりです。

$ curl -s -D/dev/stdout 'http://www.nationalgaming.org:27017'
HTTP/1.1 401 Unauthorized
Content-Length: 0
WWW-Authenticate: Digest qop="auth", realm="www.nationalgaming.org", nonce="1354591712"

これは、ページにログインが必要であることを示します。

于 2012-12-04T03:12:50.727 に答える