人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

IPアドレスについて教えてください。

例えば以下のようなシステムを作るとします。

・本や商品に対する投票システム
・「素晴らしい」「素晴らしくない」のような2択
・PHPで投票者のIPアドレスを取得

この時に同じ人からの投票ができないようにしたいのです。
IPアドレスをMySQLに格納して、同じIPから投票があった場合にはブロックする事を考えています。

ただ、使っているルーター?によってはパソコンを立ち上げる度にIPが変わる事があると漠然と認識しています。

質問1.
変わってしまうIPについて詳しく解説してもらえないでしょうか?


質問2.
同じ人からの投票を防ぐにはどうすれば一番いいか教えてください。クッキーの知識は全く持ち合わせておりません。


どちらかの質問だけで結構です。もちろんどちらも答えて頂けるとありがたいです。

よろしくお願いします。

●質問者: tokyosmash
●カテゴリ:インターネット ウェブ制作
✍キーワード:IP IPアドレス MySQL PHP クッキー
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● きゃづみぃ
●27ポイント

http://www2.u-netsurf.ne.jp/~alt/mt/archives/20031107_1651.html

IPアドレスは、固定IPと変動IPに分かれます。

IPアドレスは、数に限界があります。

プロパイダが そのIPアドレスを割り当ててもらってその中から

利用者に割り当てる仕組みになっています。

グローバルIPアドレスとプライベートIPアドレスがあります。

http://yougo.ascii24.com/gh/77/007780.html

プロパイダは 割り当てられたIPアドレスの数以上のユーザーに

IPアドレスを割り当てるために ひとつのIPアドレスに対して 複数のユーザーを割り当てる場合があります。

これが プライベートIPアドレスと呼ばれるものです。

つまり、ひとつのIPアドレスで 複数の人が同時に使用している恐れがあるのです。

質問にあるシステムを作るには、ユーザー登録して投票できるようにしたらいいでしょう。

また、ユーザー確認に 郵便物による確認を行えばさらに信頼度は 増します。

◎質問者からの返答

>つまり、ひとつのIPアドレスで 複数の人が同時に使用している恐れがある

こういう事を聞きたかったんです!

ありがとうございます。

つまりIPアドレスでブロックすると他人も弾く可能性があるという事ですね。

やはりクッキーしかないのでしょうか。


2 ● SALINGER
●27ポイント

固定IPアドレスを取っていない人がほとんどですから、インターネットをする人は動的IPアドレスになります。

動的IPアドレスはプロバイダに必要なときに割り当てられるので、IPアドレスは絶えず変わってしまうことになります。

それで、IPアドレスをサーバ側で取得するのは簡単なんですが、変わってしまうので意味がありません。

http://dictionary.rbbtoday.com/Details/term2237.html


それから、COOKIEとはサイトを見たパソコンに印をつけておく効果があります。サイトにアクセスしたときに印があるかどうか確認できるのですでに印があれば違うページに飛ばすということができます。

一回限りの簡単な投票ならばそれでいいかもしれません。

ただし、COOKIEを使った認証ですがCOOKIEは削除することができるので、一度新規で投票して削除してまた新規で投票ということができてしまいます。


原理的には個人の多重投稿を防ぐことは不可能なんですが、世間一般でとられている方法はメールアドレスを使うことです。

アカウントを作るためにメールアドレスを記入させて、メールアドレス宛にパスワードを送付して、パスワードを使ってログインしていただくという方法。

これでも、複数のメールアドレスを持っていれば多重投票できてしまいますが、1人で100回とかは防げます。

これくらいしなけらば個人を特定するのは難しいということです。


3 ● kurukuru-neko
●26ポイント

質問1.

動的に変わないとした場合でも

得られるIPアドレスは、パソコンの

IPとは限らないので特定は困難

1.パソコンから利用する場合直接

接続されている場合は、パソコンのIP

アドレスを知ることが出来ます。

2.ルータ経由で接続した場合、ルータの

IPアドレスを知ることになります。

プロキシーサーバーを経由している場合

プロキシーサーバーのIPアドレス

を知る事になります

3.携帯からアクセスされた場合、通常携帯は

IPアドレスを持っていないので

中継するサーバーのIPアドレスを

知ることになります。

質問2

登録制が一番簡単

登録制が出来ない場合、cookieを使う

方法がありますが。cookieを削除すると

何度でも投票できてしまいます。

登録制でも重複登録できるようだと

何度でも登録できてしまいます。

例:

1.ユーザー登録

2.メールで登録番号送付

送付されたメールには登録完了ページ

のURLと登録完了コード等

が書かれている

3.登録完了ページで登録完了コードを

入力。 そのときDB/cookieにユーザ

固有の識別用のIDを保存する。

クライアントのPCで

4.ユーザーはログインして

投票するとき、DB/cookieの識別情報

の一致すれば本人と認定、DBには

識別情報を保存する。

cookieを削除した場合は、

メールで登録しなおし。

※:cookieの削除や、重複してユーザ

登録したり、複数のPCで同じ

操作をする対策は必要

REMOTE_ADDR

HTTP_USER_AGENT

http://www.php.net/manual/ja/reserved.variables.php

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ