サポート » プラグイン » 投稿制限をIPアドレスでしたい

  • 解決済 suga

    (@suga)


    須賀です

    外向き(インターネット公開)のサイトでwordpressを、使っていますが、
    投稿(ページ含めて)をIPアドレスで制限かけれるようなプラグインはありますか?

    イントラネットからしか投稿できなくしたいのです

    どなたか情報お持ちでしたら教えてください

    よろしくお願いします

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • モデレーター IKEDA Yuriko

    (@lilyfan)

    イントラネットからしか投稿できなくしたいのです

    ウェブサーバー (Apache など) 側で、wp-admin/ ディレクトリーおよび wp-login.php に対して IP アドレス制限をかける手があります。この方が素直ですし、簡単に実現できますよ。ただし、ウェブサーバー管理者に相談する必要がありますが、目的が目的だけに対応してもらえるでしょう。

    トピック投稿者 suga

    (@suga)

    lilyfanさん 回答ありがとうございます
    apacheでの制限はこちらでも考えたのですが
    WindowsLiveWriter での投稿で運用しているので
    wp-login.phpやwp-admin Directoryをapacheで制限しても
    だめだったのでプラグインがないか探しています

    WindowsLiveWriterでの制限をapache側でかけれる方法が何かあれば
    教えてください

    モデレーター IKEDA Yuriko

    (@lilyfan)

    WindowsLiveWriterでの制限をapache側でかけれる方法が何かあれば

    なるほど、XML-RPC クライアントの投稿があるわけですね。それだと、xmlrpc.php も IP アドレス制限の対象にすればよいかと思います。

    この手の、他の人はまず使わないような制限等のプラグインは無いと思います。
    でも自分でプログラムをちょこっとさわれば出来ると思います。

    if ( preg_match ( "/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/", $_SERVER["REMOTE_ADDR"] , $ips ) ) {
    	// たとえば 内部ネットワークが 192.168.0.0/24 なら
    	if ($ips[1]==127 && $ips[2]==0){
    		// これはOKです ローカルアクセス
    	} elseif ($ips[1]==192 && $ips[2]==168){
    		// これはOKです イントラネット
    	} else {
    		wp_die( __('Sorry, This Contents is Members Only!.') );
    		exit;
    	}
    }

    みたいなコードを目的のプログラムの適当な場所に貼り付けてやれば…..(^-^)
    外していたらごめんなさい!

    モデレーター IKEDA Yuriko

    (@lilyfan)

    みたいなコードを目的のプログラムの適当な場所に貼り付けてやれば…..(^-^)

    元質問は、コンテンツの閲覧は全世界に許可していて、投稿だけ制限をかけたいという内容です。このため、当該コードを入れるとしたら、「投稿時にだけ実行される部分」に入れることになります。そうなると、wp-login.php ないし xmlrpc.php に入れればよいでしょうか。

    あと、イントラネットが IPv6 の場合はこのままでは使えないので、大幅な修正が必要ですね 😉 (さすがにイントラネットをすべて v6 にしている組織は少ないでしょうが)。

    トピック投稿者 suga

    (@suga)

    takepieroさん、lilyfanさん 回答ありがとうございます

    返事が遅れてすいません

    wp-login.php と xmlrpc.php にスクリプトをいれこむことで
    できました

    WindowsLiveWriterからはxmlrpc.phpになるのですね

    ありがとうございました

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「投稿制限をIPアドレスでしたい」には新たに返信することはできません。