電子書籍の厳選無料作品が豊富!

Webから送信されたデータをC言語内でOS判断(MacかWindows)することは可能なのでしょうか?

A 回答 (6件)

環境変数にHTT_USER_AGENTが設定されていると思いますので、そこから取得できますよ。


ま、ウェブサーバーにもよるのですが。
ApacheやらIISやらであれば、基本は同じはずです。

ユーザーエージェントの書式は、ネットスケープ社の技術情報から取得できたはずです。
たしか、ブラウザ名、ブラウザバージョン、OS名、OSバージョンを入れましょうという指定があったかと思います。
ただし、Netscape、Mozila、Operaなどは、したがっていたはずですが、InternetExplorerはその標準に従っていなかったはずです。
また、標準の書式はありますが、ユーザーエージェントの内容は、ブラウザが自由に設定できるので、正規表現などで取ることが出来ません(難しい)。
それに、ユーザーエージェント情報をおくらないブラウザもあります。

携帯電話やロボットなどもウェブページへアクセス可能ですし、OSの指定がないものもありますので、お気をつけください。
    • good
    • 0
この回答へのお礼

参考になりました。ありがとうございました。

お礼日時:2004/03/04 16:16

CでCGIを作っているのですしょうか?


epistemeさんおっしゃてますが
ヘッダの情報しか判別の方法はありません。

http://www.kumei.ne.jp/c_lang/intro/no_84.htm

ヘッダ情報はあくまでクライアントが送る情報ですので
(javascriptも)偽装は可能です。
    • good
    • 0

早急にと言う事でしたら


JavaScriptで取得した判断情報を設定して
submit()で飛ばすか
Locateで情報を渡してリダイレクトしてみては如何でしょう?

この回答への補足

submitボタンを専用で用意ができないのです。
早急ではないので具体的に説明していただけないでしょうか・・・

補足日時:2004/03/04 12:15
    • good
    • 0

#2の補足:



> おそらくプロトコル・ヘッダ内にあるはずです。

HTTP User Agent ヘッダでしょうね。
    • good
    • 0

> Webから送信されたデータをC言語内でブラウザ判別(NetscapeかInternet Explorer)することは可能なのでしょうか?JavaScriptでは判別はできるのですが・・・



その判別情報がデータ内にあるのなら、できるでしょう。
おそらくプロトコル・ヘッダ内にあるはずです。

RFCをお読みになればわかるのではないかと。

参考URL:http://www.studyinghttp.net/rfc_ja/
    • good
    • 0

送信されたデータ内に何らかの手掛かりがあればできるでしょうが、その手掛かりが必ずあるとは限らないので、'安全確実'な方法はないので

この回答への補足

では、Webから送信されたデータをC言語内でブラウザ判別(NetscapeかInternet Explorer)することは可能なのでしょうか?JavaScriptでは判別はできるのですが・・・
上記の結果をC言語のデータ内に送信したいのですが・・・

補足日時:2004/03/04 11:31
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!