ホームページ >バックエンド開発 >PHPチュートリアル >PHPカールには検証コードがあり、ログインの問題をシミュレートします

PHPカールには検証コードがあり、ログインの問題をシミュレートします

WBOY
WBOYオリジナル
2016-06-23 13:29:02843ブラウズ

最近 PHP を勉強したので、学校の学業管理システムにログインして情報を取得したいのですが、認証コードの渡し方がわかりません
210.44.176.133/(0qus0s55gb1ojp45n2h0sr55)/Default2.aspx
///
フォーラムにもアクセスしてください 優秀な人がアドバイスをくれます


ディスカッション(解決策)に返信

検証コードは、人間の肉認識か機械認識のどちらかであり、検証コードの特性に応じて処理する必要があります。人体を入力して送信し、それを持ってくる必要があります

認証コードがある場合は、認証コードを識別する必要があります。相手が複雑なものに変えてしまう以上、どうすることもできません。

認証コードは人間の肉か機械の認識のどちらかです。機械の認識は認証コードの特性に応じて処理する必要がありますが、人間の肉は入力して送信し、クッキーを持ってくる必要があります。肉を入力すると、検証コードが取得されました。投稿すると、ここに移動されたオブジェクトが返されます。Baidu で調べたところ、リダイレクトで止まっているとのことでした。ここでどう対処すればいいのかわかりません。



認証コードをお持ちの場合は、模擬ログインするのが面倒ですので、認証コードを確認する必要があります。相手が複雑なものに変えてしまう以上、どうすることもできません。

人間の入力が必要です。検証コードは取得されており、投稿すると、ここに移動されたオブジェクトが返されます。

Baidu は、リダイレクトでスタックしていると言いました。どう愛してよいかわかりません。混乱しています。ここで、どう対処すればいいのかわかりません。


CURLOPT_FOLLOWLOCATION これを 1 に設定しましたか?

CURLOPT_FOLLOWLOCATION これを 1 に設定しましたか?

設定が消えています。

不正なリクエスト (無効な番号) です。 何が問題ですか?

渡した番号が不正であるかどうかを確認してください。


分析のためにコードを投稿するのが最善です。

分析のためにコードを投稿するのが最善です。

分析の結果、実際のログイン アドレスは 210.44.176.133 であることが判明し、アドレス 210.44.176.133/(0qus0s55gb1ojp45n2h0sr55)/Default2.aspx にリダイレクトされます。中央の括弧内はランダムであり、毎回異なります。さて、リダイレクトされたアドレスを取得するにはどうすればよいでしょうか?

これは私が書いた方法です

function curl_get_url(){		$cookie_file=tempnam('./ck','cookie');		$ch = curl_init("http://210.44.176.133");		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);		curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);		curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);		curl_setopt($ch, CURLOPT_MAXREDIRS, 10);		$data = curl_exec($ch);//运行curl		curl_close($ch);		return $data;		}



渡した番号が不正であるかどうかを確認してください。誰かが番号の入力を求めたのに、別の番号を入力しました。

分析の結果、実際のログイン アドレスは 210.44.176.133 であることが判明し、その後、アドレス 210.44.176.133/(0qus0s55gb1ojp45n2h0sr55)/Default2.aspx にリダイレクトされます。中央の括弧内はランダムであり、毎回異なります。さて、このリダイレクトされたアドレスを取得するにはどうすればよいでしょうか?

これは私が書いたメソッドです

function curl_get_url(){		$cookie_file=tempnam('./ck','cookie');		$ch = curl_init("http://210.44.176.133");		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);		curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);		curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);		curl_setopt($ch, CURLOPT_MAXREDIRS, 10);		$data = curl_exec($ch);//运行curl		curl_close($ch);		return $data;		}


リクエストURL: http://210.44.176.133/
リクエストメソッド: GET
ステータスコード: 302 Found リクエストヘッダービューソース

Accept: text/html, application/xhtml+xml, application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:zh-CN,zh;q=0.8
Cache-Control:max- age=0
接続:キープアライブ
Cookie:TTKlinkFirst=1; f5127c6793d40d199f68042b8a63e725=1390791234
ホスト:210.44.176.133
ユーザーエージェント:Mozilla/5.0 (Windows NT 6.2) it/ 537.36 (KHTML、Gecko など) Chrome/31.0 .1650.57 Safari/537.36

レスポンスヘッダービューソース
Cache-Control:private
Connection:close
Content-Length:158
Content-Type: text/html; 2
Date :Mon, 27 Jan 2014 02:54 :29 GMT
場所:/(di3bfgq4zqk5c23n2ofovr45)/Default2.aspx
サーバー:Microsoft-IIS/6.0
X-AspNet-Version:1.1.4322
X-Powered-By:ASP

curl_setopt($ch. , CURLOPT_COOKIEFILE, $cookie_file);curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);

通常、ログインはイントラネット アドレスである必要があります。テストすることはできません

自分でゆっくりとデバッグすることしかできません



追加
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); get メソッドが使用され、一般的なログインは post メソッドである必要があります
あなたのアドレスはイントラネットですアドレスがあるためテストできません
自分でゆっくりデバッグするしかありません

これは投稿する場所ではありません。投稿時に Cookie は送信されませんでした。ここで、そのランダムなアドレスを取得したいだけです。ログイン後、
210.44.176.133 --Jump--> 210.44.176.133 /(0qus0s55gb1ojp45n2h0sr55)/Default2.aspx
にジャンプし、ジャンプ後のページでフォームを送信します。このアドレスを取得する方法を知っています。 。 。

正規表現を使用してアドレスを抽出する

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。