- ベストアンサー
PCごとに違う値ってないのでしょうか・・・
こんにちは。 突然ですが、PCごとに違う数値ってないのでしょうか? C言語で取得したいのですが、そもそもPCごとというのは具体性がないので、マザーボードやメモリ、CPUなど何でもいいので、世界に2つとないようなPCごとの数値って取得する方法はないでしょうか・・・ ひとつ試していて思ったのですが、rand()はプログラムを起動するたびに同じランダムな数字を返してきますよね?ですが、PCによって初期値が違うことがわかりました。どうしてですか? 分かりにくい質問ですみません。回答をお待ちしていますm(_ _)m
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
OSの力を借りるのは必須ですね。 Windowsに関してならば、良さげなのがあったので紹介しておきます。 アプリケーションが一意に判断できる値を得る方法 http://www.cisnet.or.jp/home/tsuneoka/win32tech/11.html
その他の回答 (7)
- naru_fumi2005
- ベストアンサー率13% (10/72)
C言語を使うのに「標準出力」「リダイレクト」を知らないのでは、話になりません。 ※ GUIに慣れきった初心者の典型か。今はGUIしか使ったこと無いのにコンピュータを使いこなしているかのような錯覚を持つ人が多いですからねぇ。
- nofutureforyou
- ベストアンサー率9% (25/277)
なぜ、そういうことがしたいのでしょうか? みなさんの解答が理解できないのなら、この問に答えることが有効でしょう。
- naru_fumi2005
- ベストアンサー率13% (10/72)
UNIX系のOSであれば、/sbin/ifconfigコマンドでMACアドレスを「表示」できます。 たしか、標準出力に表示しているのでリダイレクトを使ってファイルに落としておけば、後でそのファイルをオープンして読み込めばいいでしょう。
補足
せっかく教えていただいたのに悪いのですが、よくわからないんです;; それってC言語でできるんですか?
- TT414
- ベストアンサー率18% (72/384)
>違うPCに移動して実行すると、今度は並びもさっきとぜんぜん変わるんです rand,srandにこんな機能ありましたっけ? コンパイラ名を教えてもらえませんか?
補足
どうやらrandの初期値はOSによって変わってるみたいです^^; だめですね・・・これは使えませんでしたorz
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
以前、ハードディスク(例えば、c:\)の、ボリュームシリアルを使っていたソフトを見たことがあります。 これ、少なくとも、「ほぼユニーク」ではあると思いますが。 あと、インテルの Pentium III 以降は、CPU にシリアル No. がついています。もっとも、これは、(パソコンの)出荷状態で disble にすることになっていますから、ほとんど使えないでしょうが。 逆に、自分が管理する小さな領域のマシンだけに適用するのであれば、使えるかもしれません。
- sakura-pon
- ベストアンサー率20% (153/744)
NICが搭載されているという前提ですが、MACアドレスは必ずユニークな値です。 >PCによって初期値が違うことがわかりました そうでないと乱数になりませんから。 srand関数で定義しない限り、必ずランダム値を返します。 但し、乱数と言っても正確には擬似乱数です。 ある規則によって形成された乱数です。
- naru_fumi2005
- ベストアンサー率13% (10/72)
ネットワークカードが付いていれば、そのカードのID(MACアドレス)は、2つとして存在しません。 ランダム関数に関しては、わかりません。 でも、ランダム関数を使う前に、種の初期化をしますよね、普通。 その初期化に使う整数に、年月日時分秒をyyyymmddhhmmssで与えると、2度と同じ種にはなりません。
補足
回答ありがとうございました。 さっそくMACアドレスをC言語で調べる方法を調べてみたのですが、まったく分かりません;; それらしきサンプルが見つからず、こまっています。 どなたかキーワードでもいいので教えていただけないでしょうか・・・ それと、これは補足ですが、 プログラムを実行後srandを呼び出さず、randのみを呼び出すと、何回実行してもrandの返す値は同じ順になるんです (1回目の起動=1,3,5,2,7だとすると、2回目の起動=1,3,5,2,7になり、同じならびになりますよね) で、そのプログラムを違うPCに移動して実行すると、今度は並びもさっきとぜんぜん変わるんです (1回目の起動=2,1,8,3,9だとすると、2回目の起動=2,1,8,3,9になり、これもまた同じならびになりました) これを利用できないかと思ったのですが、どうなんでしょうか・・・
補足
さっそくNetbiosを試してみようと思ったのですが、使い方がぜんぜん分かりません;; 具体的にどうやったらMACアドレスが取得できるのでしょうか・・・ 何度も何度もすみません・・・