• ベストアンサー

HTTP通信の中身を解析したいのですが

you-mの回答

  • ベストアンサー
  • you-m
  • ベストアンサー率58% (190/327)
回答No.2

キャプチャーしたデータの中身が見れないのは、恐らく単純に文字コードの問題ではないですか? そもそも、日本語Web上のコンテンツは、大まかにShift-jis、EUC-JP、7ビットJIS、最近ではUTF-8なんかもありますが、流通している漢字コードには、これだけ種類があるわけです。 キャプチャソフトを動かしてそのまま見れるのは、Shift-jisだけでしょう。 ポイントは、HTTPヘッダもしくは、HTMLのHEAD内で宣言されているコンテンツタイプを識別して、そのコンテンツの文字コードを正しく判別してやり、そのコードを前提としてアプリ側でコンバートしてやれば、問題なく処理ができるかと思います。 しかし、小物アプリと呼ぶにはやや重いかもしれませんね。RubyやPerlならば割と簡単に作れると思いますが。

mikichan1234
質問者

お礼

そうですか。Rubyは一応ちょっとできるのですが、今回はNo1さんへの回答のように方針変更しようと思います。  ありがとうございました。

関連するQ&A

  • socket通信でのフィルタリング

    linux環境にてC言語でUDPソケットのプログラムを作成しています。 Aの端末からUDPで受信してパケットヘッダの表示及び、宛先アドレスや宛先ポート番号 を書き換えてBの端末にUDPで送信します。 そこで下記の関数を使用して受信しているのですが、パケットキャプチャのように なんでも受信してしまいます。 socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL)) これを特定のポート番号だけ受信(フィルタ)するにはどのようにすれば良いのでしょうか?

  • Like検索で一致した%の中身を解析できますか?

    SQLのあいまい検索で 抽出条件 WHERE 項目1 LIKE 'A%B%C' で抽出されたのが 'A1B2C' だとすると、%に該当するのは1と2ですが、 これを導き出すことはできますか? いくつかのパターンに当てはまる場合は、いずれか1つで構いません。 例えば、抽出条件'A%B%C'に対して'A1B2B3C'が抽出された場合 1と2B3 と 1B2と3 の両方の可能性がありますがどちらか一方がわかれば良いです。 まとめると <入力> パターン文字列 A%B%C 対象文字列 A1B2B3C <出力> 1と2B3 または 1B2と3 こういうことはSQLまたはVBA(Excel、Access)で簡単にできるでしょうか? 1文字ずつ地道に調べればいつかは解析できるのでしょうが 同じことを他に誰かやっていないかと思い質問させていただきした。 【背景】 あるエラーメッセージが、メッセージマスタのどれに該当するかを調べたいです。 具体的に『氏名が入力されていません』というエラーメッセージを例にすると これが『(項目)が入力されていません』というパターンのメッセ―ジであり、 (項目)に入るのが『氏名』であることを解析したいです。 パターンはSQLのLIKE検索で特定できたのですが、 (項目)に入る文字を調べるところで困ってしまいました。 よろしくお願いします。

  • パケット通信料について

    ダブル定額に加入してない場合、Eメールで例えば200文字を送信した場合は、だいたいパケット通信料はいくら位かかりますか?逆に200文字を受信した場合も教えてほしいです。だいたいの金額でいいので、よろしくお願いしますm(_ _)m

    • ベストアンサー
    • au
  • エクセル 2列の中身をスペースを挟んで1列にしたい

    Excelのバージョンは2000を使用しています。 A列の中身とB列の中身をC列で一緒にしたいのですが、その方法は、 「=a1&b1」 でいいと、他の方の質問で分かりました。 ただ、aとbの間にスペースを挟んで結合したい場合、どうしたらできるでしょうか?      A   B  C   1  あ  10%     2  い  11%    3  う  15%    4  え  10%    5  お  10% こうしたい: C列の中身は「A列の中身-全角スペース-B列の中身」      A   B   C   1  あ  10% あ 10%     2  い  11% い 11%    3  う  15% う 15%    4  え  10% え 10%   5  お  10% お 10% さらに、B列が書式設定「パーセント表示」のため上記の方法で合体させると表示が0.2567‥という風に数字に戻ってしまいます。これを%表示のまま結合させるにはどうしたら良いでしょうか? どなたかお知恵拝借願えませんでしょうか。。

  • パケットキャプチャとファイアウォールの関係について

    端末マシンでUDPで受信していることをパケットキャプチャ(wireshark)が示しているのですが、アプリケーションでは受信できません。 端末マシンのファイアウォールの設定のためかと思いましたが、パケットキャプチャで受信が確認できているため原因がわかりません。 パケットキャプチャは、セキュリティソフトがブロックした場合でも表示されるのでしょうか。 同様に、NTPで時間が取得できないのに、キャプチャができています。 このあたり、ブロックはされてしまうパケットも、とりあえずマシンにやってきたものはすべてキャプチャされるのでしょうか。

  • HTTPのメッセージボディについて質問です。

    HTTPのメッセージボディについて質問です。 決済代行会社との接続で悩んでいます。 要求した決済の結果を、 「ヘッダに「content-type : text/plain;charset=Shift_JIS」、メッセージボディの1、2行目に以下の文字列を返します。」 とあり、 CHECK:OK SID=xxxxxx GOUKEI=nnnnnn や CHECK:NG SID=xxxxxxx (2行目もある場合あり) と仕様書に書いてあります。 どのようにしたら、この中から、CHECK: の結果がNGかOKか、や、SIDの番号や、GOUKEIの額を取り出すことが出来るのでしょうか? mb_・・・・ と色々な関数があるかと思いますが、どのようにしたら、HTTPのメッセージボディの1行目を検索文字列「str」に代入することができるのでしょうか? 自分がHTTPについてあまり理解していなく、知識不足だと思いますが、どなたかご教授お願いします。

    • ベストアンサー
    • PHP
  • HTTP_USER_AGENTを用いてLモードを判別する方法

    HTTP_USER_AGENTを用いて、Lモードを判別したいと考えております。「DoCoMo」の文字列を含む場合にはドコモの携帯、「UP.Browser」や「UPG1」の文字列を含む場合にはauの携帯、「J-PHONE」の文字列を含む場合にはJ-PHONEの携帯といったように判別できるかと思いますが、Lモードの場合にはどのような文字列を含むのでしょうか。恐れ入りますが教えていただけると助かります。よろしくお願いいたします。 それから、「ドコモ、au、Jーphone、Lモード以外は、PCである」と判別させようと考えておりますが、他に判別の必要があるものはございますでしょうか。(特に電話関連で判別の必要があるものがございましたらご指摘いただけませんでしょうか。)どのような文字列を含むかもあわせて教えていただけるとありがたく存じます。何卒よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • 正規表現のパターンに変数を指定したい

    perlでパターンマッチを行う際、正規表現で行いますが、パターン文字列内に変数を指定したい場合はどうすればよいのでしょうか? if ($ENV{HTTP_USER_AGENT} =~ /$pattern/) {  : } というようなことをしたいのですが、うまくいきません。 方法はありますでしょうか?

    • ベストアンサー
    • Perl
  • HTTP 200 OKの後のリダイレクト?

    OS:Windows Vista Business IEやFirefoxであるフォーム(Host:xxx.example.com/test)にPOSTしました。 そのレスポンスのHttpヘッダに「HTTP/1.1 200 OK」とありました。 続いてブラウザは別のページの取得を行いました(Host:yyy.exmaple.com/other)。 私のつたない知識では、リダイレクトを行うのは、HTTPステータスコードが301~303などの場合だと思っていたのですが、 実際は上記のようにPOST後に200が返ってきたのに、別のURLへGETを投げていました。 (IE・Firefoxとも) POST後のHTTPヘッダを見たところ、ヘッダにはLocationはなく、「yyy.example.com/other」のURLの文字列も見当たりません。 ブラウザはどうやってPOST後のリダイレクトを検知し、さらに移動先のURLを知っているのでしょうか?

  • PHPの文字解析について質問です。

    PHPの文字解析について質問です。 $a=○○、××; $b=○○・××; 変数にこのような値が入っている場合 「、」や「・」に着目してそれより前の文字列「○○」、後の文字列「××」を取得したいのですがそのようなことは可能でしょうか? ご教授よろしくお願いいたします。

    • ベストアンサー
    • PHP