位置情報で子どもの居場所をお知らせ

PHPを使用して、PC固有の番号(シリアル番号等)を取得したいのですが、どのように記述すればよいか分からないので教えて下さい。

○やりたいこと
現在作成中のSNSサイトで友達を紹介する仕組みを作りたいです。
紹介する人にも紹介を受ける人にもメリットがあります。
紹介する人が、紹介を受ける人のメールアドレスをサイト内で入力・送信をすると、サイトから紹介を受けるに招待メールが送られます。
紹介を受ける人は、招待メールのリンクを辿りサイトの登録へと進みます。
メールアドレスは、WEBメールでの登録も許可しているので、1台のPCでいくつもアドレスを作ることができて、自作自演が可能です。
そこで、PC固有の情報を取得して登録メールアドレスと組み合わせてアカウントチェックをすることで、1台で複数のアカウントが取得できると考えています。


参考になる文献でもよいので、どうか皆さんのお知恵を貸して下さい。
宜しくお願い致しますm(__)m



■環境
windows vista
xampp/apache 2.2.4
PHP Version 5.2.3

このQ&Aに関連する最新のQ&A

A 回答 (4件)

PC固有の値を取得することはできないので、他のサービスがどうやって


この問題を解決しているか、いくつか例を挙げます。

1.
住民票の写し、免許証のコピーなどを提出させて、個人を特定しアカウントを発行する。
ネット証券会社など

2.
アカウント申請時に携帯電話番号を入力させ、本人確認の電話を運営側から自動音声で行う。
gmailなど

3.
携帯電話でのみアカウント作成を許可する。
いわゆるガラケーであれば、端末固有IDを取得する仕組みがあります。

4.
携帯電話会社のOpenIDで認証する。
PC上で完結しますが、一般ユーザへの認知度が高いとは言えませんね。


2.3.4.は厳密には複アカできてしまいますが、携帯契約数以上のアカウントは作れないので
ある程度の抑止力になると思います。
    • good
    • 2
この回答へのお礼

携帯を利用したアカウント作成の許可は、使えそうですね。
自分で携帯を複数台所有していたとしても1ケタ台でしょうし、他人の携帯を使う場合には、
他人の許可が必要ですからある程度の抑止力になると分かります。
1番の方法も有効だと感じたのでベストアンサーに選ばせていただきます。
ありがとうございました。

お礼日時:2012/02/25 23:07

携帯ならともかく普通のPCにはネット上で使えるようなPC固有の番号というのはないんですよね。


ただネットワークカードには固有の番号であるMACアドレスというのがあるので、それと会員アカウントを紐づけるという手はあるでしょう。
PHPで会員側のPCのMACアドレスを取得してくることはできませんので、PHPの質問コーナーとしては何とも回答のしようがないところです。
PHPじゃなく、Javascript、java または.NET FrameworkなどPC側で動作するプログラムを使えばできるかもしれません。
しかし、MACアドレスも含め、PCに詳しい人なら偽装的なことはいくらでもできますので厳密さを求めるならちょっと難しいでしょう。
    • good
    • 0
この回答へのお礼

MACアドレスというものがあるのですね。
厳密さを求められないものであると分かっただけで、PC固有番号の取得を諦めることができます。

PC固有番号を取得する必要ができた時にアドバイスを活用させていただきます。
ありがとうございました。

お礼日時:2012/02/25 22:52

この場合、PHPが動作するのはサーバー側なので


仮に取得できたとしてもサーバーPCのものですが。

それに複数のPCなどからアクセスされた場合などいくらでも抜け道ありますけど。
    • good
    • 0
この回答へのお礼

抜け道があるのですね。

複数のPCからアクセスされるのはよいのですが、アカウントを無制限に作られて友達紹介の仕組みを利用したサイト内のポイントの不正入手を防ぎたいのです。

サーバーPCの固有番号の取得となってしまうのであれば、PHPでは無理ですね。
ありがとうございました。

お礼日時:2012/02/25 22:58

>PC固有の番号(シリアル番号等)を取得



できません
    • good
    • 0
この回答へのお礼

明確なお答えありがとうございます。

お礼日時:2012/02/25 22:53

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QPC固有の情報はどう取得すればいいでしょうか?

Windows用アプリの開発をする事になったプログラマーです。
不正使用防止のプロテクトとしてハードウェアプロテクターを
使用するように上司から指示がありました。
その中でPCとプロテクターを1対1で対応させるようにと言われました。

プロテクターには多少のメモリが有りますので
プロセッサーシリアルナンバーをプロテクターに記憶させ
使おうと思ったのですがPentium4以降のCPUにはその機能が有りません。
OSのプロダクトIDはボリュームライセンスで
購入している場合は複数のPCで同じIDになります。

そこでプロセッサーシリアルナンバーや
OSのプロダクトID以外にPC固有の情報で
使えそうな情報がないか
皆様のお知恵を拝借したく質問してみました。

宜しくお願い致します。

Aベストアンサー

#1,#4です。

#1補足にて複数LANの議題を挙げておられたので・・・
1.ネットワーク機器に対する制御のみでMACアドレスの取得は一意に出来る。

2.複数ネットワーク機器の識別は必要であり実現できることですが複数LANというのがどう関係してくるのか私には判りませんでした。故の補足要求です。

3.他にも色々な選択肢がある。

と回答したつもりです。

伝わっていなかったようなので再度回答いたします。

Q利用者側のMACアドレスを取得したい

いま PHP を使ってウェブサイトを構築しており、
認証として利用者のMACアドレスを取得したいと思っています。
LAN 内であれば
http://www.phpclasses.org/browse/file/7704.html
等を利用して取得できるようですが、
当たり前ですが LAN の外の方との通信では取得ができません。

JavaScript を使ってクライアント側の MACアドレスを取得してしまう
という方法があると聞いたことがあるのですが、
検索しても見つけ出すことができませんでした。

ご存じの方、お教え頂けますでしょうか?
よろしくお願い致します。

Aベストアンサー

複数PCのユーザーや、PCの買い替え、LANカードの変更など
MACアドレスが変わる機会は多々あります。

現実的には、ウェブアクセスで
MACアドレスでの認証は、可用性が低いと言えます。


逆に、ソーシャルアタックに対して
MACアドレス認証は弱い。
親のPCと自分のPCのLANカードを入れ換えるくらい
中学生でも簡単にやってのけるでしょう。

QJavascriptでマシン固有の情報を取得する方法

Javascriptだけで完全なユニーク文字列を作成したいのですが、可能でしょうか?
ランダムの場合、偶然同じになるかもしれないためです。

マシン固有の情報を使って、それ+日時を種にしてランダムにすれば、かなりユニークな文字列を作れそうですが。

Javascriptでマシン固有の情報を取得する何かよい方法をご存知の方、教えてください。

IEとFireFox限定でもかまいません。

Aベストアンサー

>完全なユニーク文字列

他の値がなにかわからないのであれば、ユニークである保障はできません。
理論上は完全にユニークというのはムリでしょう

逆に比較するというプロセスがないのならユニークでなくても
他の値と競合する可能性はありません。

結局はどのくらいの精度で処理したいかによります
たとえば、100億の端末から同時アクセスされたときにユニークな値を
だすのは工夫が必要でしょうけど、そもそもハードウェアやネットワーク的に
100億のアクセスを処理することはできないでしょう。
ボトルネックが別にあるのに、精度をもとめることは意味がありません。

QリダイレクトでPOST

教えてください。

リダイレクトの際、POSTで次のページにデータを渡すことは可能でしょうか?

GETだと
header("Location: "a.php?no=".$no);
と、問題なくできるのですが、
できれば、パラメータを隠したいと思います。

以上ですが、よろしくお願いします。

Aベストアンサー

多分できないです。
それに、結局クライアント側に情報を送信しているのだから、POSTにしたところでパラメータを隠した事にはならないですし。
本当に隠すならサーバ側でセッション情報を引き継ぐような形にしないとダメでしょう。

AJAXのかたちにして、ページ遷移を見えなくするというのが手っ取り早いかも。

Q【PHP】UUID・UDIDによる端末判断に関して

質問させていただきます。

iosで端末を判断するのにUUID等を使用するという話を聞きました。

次回行う仕事で、サーバーサイドエンジニア(PHP)としてアプリ開発に携わるのですが、上記の部分の知識が少なく質問させて頂きました。

具体的にUUID等の識別はどのような形で判断するのでしょうか?
サーバーサイドでPHPで判断?アプリ開発なのでネイティブ側?それともまた全然関係ない部分?

UUIDやUDID等の違いに関しては参考になるサイトはいくつもみつけたのですが、上記の件に関しては、どのサイトの情報を参考にしてよいか分からないでいます。

もしご存じの方は、参考になるURLなどだけでも良いので、教えて頂けると助かります。

Aベストアンサー

No.1です。

>UDID←端末が最初から持ってるID
>UUID←こちら側で作成して、端末に割り振るID
はい、お察しのとおりUUIDとはアプリ開発者側が生成し発行されるユニークな値です。

たしかにUDIDと名前が似ていますが、
UDIDは端末に最初から割り当てられているユニークな値に対し
UUIDはアプリ開発者が生成するユニークな値の事です。

補足ですが、UUIDのように開発者側が生成するユニークな値で、
かつ「アプリインストール単位で」割り当てられるユニークな値をUIIDと呼びます。

参考)http://d.hatena.ne.jp/tanamon/20120924/1348491831

QJavaScriptde途中で、「exit」するには?

function kensaku(){
s_data = document.kaiin_form.input_name.value;

if(!s_data){ alert("キーワードを入れて下さい!"); }

if(s_data != dumy){ ...... }
for(i=st_no;i<=n;i++){
......省略.................;
.......省略................}
}

----------------------------------
3行目で表示されたアラートをOKで閉じても、4行目以下が実行されてしまいます。
3行目でexitするにはどうすれば良いでしょうか?

Aベストアンサー

>関数(kensaku())からは抜けられませんでした。
そうですね、勘違いしていました、f(^^;
すみません。
if(!s_data){
alert("キーワードを入れて下さい!");
return;
}
ですね。

QMAC アドレスの取得

ホームページのセキュリティ(ログイン)強化の為、アクセスしてきた人の「MAC Address」を取得する方法はないでしょうか?
(ipconfig/full で得られるところの Ethernet NIC/Physical Address に相当するものです)。

言語は、JavaScript でも、何でも良いです。
プロバイダー名は、簡単に取得できるのですが、、、、。

IPアドレスとプロバイダー名ぐらいでしか、管理するしかないのでしょうか?
ただし、IPアドレスは変わってしまいますよね。

何か良い方法はないでしょうか?

アドバイスよろしくお願い致します。

Aベストアンサー

>(2) (離職者のように)のアクセス権の管理
>  => 公開したパスワードの有効期間の管理

クライアント証明の有効期限設定は
上記の目的に対しては、二次的な対策に過ぎません。

根本的には
一人一人に個別のIDを割り当て、退職と同時にそのIDを削除するのが
重要でしょう。

またパスワード漏洩しないように、モラル教育する必要があります。
システム側でいくら制限をかけ運用で注意していても
・ブラウザにクライアント証明書やパスワードを保存していたPCが盗難にあう
・平易なパスワードをつけている
・同じパスワードを多数のサイトで使いまわしていて、あるシステムから漏洩して全滅。
というのはよくある話です。

なお、クライアント証明の配布やインストールは端末数が多いと大変ですから
社内のIPアドレスからは、クライアント証明なしでアクセスできるが
持ち歩く人や在宅勤務の方だけは短期のクライアント証明書を必須と
してWebサーバーに設定するということで
クライアント証明書の再配布の手間を減らすことは可能です。

さらに、在宅勤務の方が、固定IPなりISP限定にできるなら
クライアント証明+IPアドレス限定
のダブルチェックにするということも可能です。

>(2) (離職者のように)のアクセス権の管理
>  => 公開したパスワードの有効期間の管理

クライアント証明の有効期限設定は
上記の目的に対しては、二次的な対策に過ぎません。

根本的には
一人一人に個別のIDを割り当て、退職と同時にそのIDを削除するのが
重要でしょう。

またパスワード漏洩しないように、モラル教育する必要があります。
システム側でいくら制限をかけ運用で注意していても
・ブラウザにクライアント証明書やパスワードを保存していたPCが盗難にあう
・平易なパスワードをつ...続きを読む

Qテーブルの最後(最新)のレコードを抽出したい

宜しくお願いします。
PHP MYSQL の組み合わせで使っています

以下のようにして、最後のレコードを取り出したいのですが
まったく違う事をしているのかもしれません。

$sql =" select * from テーブル where フィールド='max' " ;

フィールドはauto_incrementで番号を振っています。
これで最大のつもりなのですが・・・。

他にも、レコードを入れた時間も記録したフィールドがあるのですが
どうしてよいか?判りません。

テーブルの最新のレコードを出したいのです。
**その中の一つのフィールドを取り出すのですが、
  それはうまくいっているみたいです 
  (max の所に数字を入れると表示します)

お手数かけますが、どなたかご教授お願いいたします。

Aベストアンサー

#2回答者です。

MySQL 4.1以前(サブクエリを使えない)なら、以下のような方法が考えられます。

select * from 表名
order by 列名 desc limit 1

QVB or VBScriptでPCの製造番号を抜く方法

VBScriptでPC本体の製造番号(シリアルナンバー)を抜き出す方法を教えてください。
現在、CPU-Zというフリーソフトを使ってCPU-Zがはき出したテキストをVBScriptで読み込み、製造番号を取得しています。
今回は、VBScriptのみで製造番号を取得したいのですが、方法が見あたりません。宜しくお願い致します。

Aベストアンサー

WMI(Windows Management Instrumentation)を使い Win32_ComputerSystemProduct IdentifyingNumberから得られそうです。私の環境(EPSON DIRECT及びGateway いずれもWindows XP Pro SP2)で表示できました。

なお、下のWSH VBScriptのコードは、WMIスクリプトを自動的に作り出すツールScriptomatic 2.0の結果を加工したものです。ダウンロードして試されるとよいですよ。今回、私はScriptomaticを使って幾つかのクラスを試し、それらしい結果からMSDNを調べました。

Win32_ComputerSystemProduct
http://msdn2.microsoft.com/EN-US/library/aa394105.aspx

Scriptomatic 2.0
http://www.microsoft.com/japan/technet/scriptcenter/tools/scripto2.mspx

-----
Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystemProduct", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)

For Each objItem In colItems
WScript.Echo "Caption: " & objItem.Caption
WScript.Echo "Description: " & objItem.Description
WScript.Echo "IdentifyingNumber: " & objItem.IdentifyingNumber
WScript.Echo "Name: " & objItem.Name
WScript.Echo "SKUNumber: " & objItem.SKUNumber
WScript.Echo "UUID: " & objItem.UUID
WScript.Echo "Vendor: " & objItem.Vendor
WScript.Echo "Version: " & objItem.Version
Next
-----

WMI(Windows Management Instrumentation)を使い Win32_ComputerSystemProduct IdentifyingNumberから得られそうです。私の環境(EPSON DIRECT及びGateway いずれもWindows XP Pro SP2)で表示できました。

なお、下のWSH VBScriptのコードは、WMIスクリプトを自動的に作り出すツールScriptomatic 2.0の結果を加工したものです。ダウンロードして試されるとよいですよ。今回、私はScriptomaticを使って幾つかのクラスを試し、それらしい結果からMSDNを調べました。

Win32_ComputerSystemProduct
http://msd...続きを読む

Q
の中に さらに
があるときのSUBMITボタンについて

今、

<FORM ACTION="aaa.asp" METHOD="POST" Name="form1">
<input type="SUBMIT" value="ボタン1">

<FORM ACTION="bbb.asp" METHOD="POST" Name="form2">
<input type="SUBMIT" value="ボタン2">
</FORM>

</FORM>


としていて、ボタン2を押すとbbb.aspに
飛んでほしいのでに、aaa.aspに飛んでしまいます。
こういう場合どのようにすればよいのでしょうか?

それぞれのボタンは hidden の値をそれぞれの
フォームの中の値を渡したいので
どうしてもSubmitがいいのです。

Aベストアンサー

No.4の回答者_Leoですが、分かりにくかったと思いますので、
全ソースのサンプルを記載しますので、参考にして下さい。
No.6のyou111111さんと同じく、JavaScriptを使用しています。
下記をそのまま、新規のhtmlにコピペで使用できますよよヨ。
本来のサイトが使用しているテキストボックス名は'MT'です。
-------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<!---gooはEUCキャラクタを使っています--->
<html>

<head>
<title>SAMPLE</title>
<meta http-equiv="Content-Type" content="text/html;charset=EUC-JP">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script language="JavaScript" type="text/javascript">
<!--
//<クリックした時に実行される関数>
//*** 英和辞書
function func1(form){
document.form1.MT.value =form.TXT.value;
document.form1.submit();
}
//*** サーチ
function func2(form){
document.form2.MT.value = form.TXT.value;
document.form2.submit();
}
//-->
</script>
</head>

<body>
<!---実際に画面表示されるフォーム--->
<form>
<input type="text" name="TXT" value="Congratulation" size="40"><br>
<input type="button" onClick="func1(this.form)" value="Eng-JP">
<input type="button" onClick="func2(this.form)" value="goo">
</form>

<!-- 辞書用の仮想フォーム -->
<form name="form1" method="GET"
action="http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi">
<input type="hidden" name="MT">
<input type="hidden" name="sw" value="0">
</form>

<!--- サーチ用の仮想フォーム --->
<form name="form2" method="GET"
action="http://search.goo.ne.jp/web.jsp">
<input type="hidden" name="MT">
</form>

</body>
</html>

No.4の回答者_Leoですが、分かりにくかったと思いますので、
全ソースのサンプルを記載しますので、参考にして下さい。
No.6のyou111111さんと同じく、JavaScriptを使用しています。
下記をそのまま、新規のhtmlにコピペで使用できますよよヨ。
本来のサイトが使用しているテキストボックス名は'MT'です。
-------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<!---gooはEUCキャラクタを使っています--->
<html>

<head>
<title>SAM...続きを読む


人気Q&Aランキング