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


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

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

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

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

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


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


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

よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:2007/03/15 17:12:20
  • 終了:2007/03/22 17:15:02

回答(3件)

id:taknt No.1

きゃづみぃ回答回数13539ベストアンサー獲得回数11982007/03/15 17:22:02

ポイント27pt

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アドレスで 複数の人が同時に使用している恐れがあるのです。

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

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

id:tokyosmash

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

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

ありがとうございます。

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

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

2007/03/15 17:26:46
id:SALINGER No.2

SALINGER回答回数3454ベストアンサー獲得回数9692007/03/15 17:43:20

ポイント27pt

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

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

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

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


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

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

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


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

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

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

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

id:kurukuru-neko No.3

kurukuru-neko回答回数1844ベストアンサー獲得回数1552007/03/15 18:04:47

ポイント26pt

質問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

  • id:llusall
    >taknt さん、こんにちわ。

    >プロパイダは 割り当てられたIPアドレスの数以上のユーザーに
    >IPアドレスを割り当てるために ひとつのIPアドレスに対して 複数のユーザーを割り当てる場合があります。
    >これが プライベートIPアドレスと呼ばれるものです。

    これは本当ですか?出典はありますか?
    例えば自宅のルータを経由してネットをする場合、ルータでIPマスカレード、「プロバイダでもマスカレード」しているという意味でしょうか?

    それは知りませんでした。


    #携帯であれば、固体識別番号を取得すれば重複無くカウントできると思います。
  • id:kurukuru-neko

    透過プロキシーとかされたらIPはさっぱり
    http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%AD%E3%82%B7

    一部CATV内部はプライベートアドレス
    って事もあるし

    http://www.icntv.ne.jp/guide/gaiyou.html
  • id:llusall
    >一部CATV内部はプライベートアドレスって事もあるし
    なるほど、そういったケースの事なんですかね。
    たとえばこのような環境では自宅サーバなどは無理ですかね。
    ネットワーク・ルーティング等はさっぱりで恥ずかしいですw

    脱線したコメントですみませんでした。>tokyosmashさん
  • id:kurukuru-neko


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

     当該ISP等が管理するグローバルアドレス
     の数以上の端末数がIPアドレスを
     使う
     → 標準的手段は誰でも使える
      プライベートIPを使う
     
     普通の会社でもグローバルIPが少なく
     社内はプライベートで何千台とあり
     PCはFirewall/Proxy経由なら状況は同じ

     携帯などはIPアドレスさえないけど
     サーバ台数は携帯台数より圧倒的に
     少なく、複数携帯でIPアドレスをシェア
     しているように見える。
     

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません