dポイントプレゼントキャンペーン実施中!

こんにちは。
突然ですが、PCごとに違う数値ってないのでしょうか?

C言語で取得したいのですが、そもそもPCごとというのは具体性がないので、マザーボードやメモリ、CPUなど何でもいいので、世界に2つとないようなPCごとの数値って取得する方法はないでしょうか・・・

ひとつ試していて思ったのですが、rand()はプログラムを起動するたびに同じランダムな数字を返してきますよね?ですが、PCによって初期値が違うことがわかりました。どうしてですか?

分かりにくい質問ですみません。回答をお待ちしていますm(_ _)m

A 回答 (8件)

OSの力を借りるのは必須ですね。


Windowsに関してならば、良さげなのがあったので紹介しておきます。

アプリケーションが一意に判断できる値を得る方法
http://www.cisnet.or.jp/home/tsuneoka/win32tech/ …

参考URL:http://www.cisnet.or.jp/home/tsuneoka/win32tech/ …

この回答への補足

さっそくNetbiosを試してみようと思ったのですが、使い方がぜんぜん分かりません;;
具体的にどうやったらMACアドレスが取得できるのでしょうか・・・

何度も何度もすみません・・・

補足日時:2005/09/01 12:30
    • good
    • 0

C言語を使うのに「標準出力」「リダイレクト」を知らないのでは、話になりません。




GUIに慣れきった初心者の典型か。今はGUIしか使ったこと無いのにコンピュータを使いこなしているかのような錯覚を持つ人が多いですからねぇ。
    • good
    • 0

なぜ、そういうことがしたいのでしょうか?


みなさんの解答が理解できないのなら、この問に答えることが有効でしょう。
    • good
    • 0

UNIX系のOSであれば、/sbin/ifconfigコマンドでMACアドレスを「表示」できます。


たしか、標準出力に表示しているのでリダイレクトを使ってファイルに落としておけば、後でそのファイルをオープンして読み込めばいいでしょう。

この回答への補足

せっかく教えていただいたのに悪いのですが、よくわからないんです;;
それってC言語でできるんですか?

補足日時:2005/09/01 19:49
    • good
    • 0

>違うPCに移動して実行すると、今度は並びもさっきとぜんぜん変わるんです


rand,srandにこんな機能ありましたっけ?
コンパイラ名を教えてもらえませんか?

この回答への補足

どうやらrandの初期値はOSによって変わってるみたいです^^;
だめですね・・・これは使えませんでしたorz

補足日時:2005/09/01 11:56
    • good
    • 0

以前、ハードディスク(例えば、c:\)の、ボリュームシリアルを使っていたソフトを見たことがあります。


これ、少なくとも、「ほぼユニーク」ではあると思いますが。

あと、インテルの Pentium III 以降は、CPU にシリアル No. がついています。もっとも、これは、(パソコンの)出荷状態で disble にすることになっていますから、ほとんど使えないでしょうが。
 逆に、自分が管理する小さな領域のマシンだけに適用するのであれば、使えるかもしれません。
    • good
    • 0

NICが搭載されているという前提ですが、MACアドレスは必ずユニークな値です。



>PCによって初期値が違うことがわかりました
そうでないと乱数になりませんから。

srand関数で定義しない限り、必ずランダム値を返します。

但し、乱数と言っても正確には擬似乱数です。
ある規則によって形成された乱数です。
    • good
    • 0

ネットワークカードが付いていれば、そのカードの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になり、これもまた同じならびになりました)

これを利用できないかと思ったのですが、どうなんでしょうか・・・

補足日時:2005/08/31 19:43
    • good
    • 0

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