It's better when it's simple

User Tools

Site Tools


Hiding IPs Plugin

Compatible with DokuWiki

  • 2024-02-06 "Kaos" unknown
  • 2023-04-04 "Jack Jackrum" unknown
  • 2022-07-31 "Igor" unknown
  • 2020-07-29 "Hogfather" yes

plugin Avoid IP addresses shown to public. Admins can view IPs even with this plugin.

Last updated on
Helper, Action

Tagged with anonymous, ip

:!: このページは日本語でご覧頂けます(This page is also available in Japanese)
:!: I’m not a native English speaker, so this page may contain some mistakes in English sentences.


In default, DokuWiki sometimes show IPs of those who are not logging in.

For example, recent changes or old revisions are shown like this:

2018/05/27 12:39  pagename – Summary. XXX.XXX.XXX.XXX -xxx B
2018/05/22 23:54  pagename – Summary. username ±0 B

But some people think that IPs shouldn't be shown to public.
This plugin tries to replace such IPs with alternative texts (A User Not Logged in in default).

Admins can view IPs even with this plugin.


Search and install the plugin using the Extension Manager. Refer to Plugins on how to install plugins manually.


It doesn't need any additional settings.
After you install this plugin, it'll automatically hide IPs in:

The plugin will rewrite only superficial data, core data won't be overwritten.

When to run this plugin can be specified on the config (see Configuration and Settings).

Helper Plugin Option

You can use the localization of the alternative text used by this plugin.
Here is a sample of the code:

if (!isset($_SERVER['REMOTE_USER'])) {
    if(!plugin_isdisabled('hidingip')) {
        $hidingip = plugin_load('helper', 'hidingip');
        $user = $hidingip->altText();  // "$hidingip->getLang('notloggedin')" works similarly

A practical sample can be seen in the program of my Autotweet2 plugin (Here).

How IPs are Replaced

In Recent Changes and Old Revisions

When $event->data->_content['(number)']['class'] has 'user', there is an user name or an IP address in $event->data->_content['(the next number)'].
Thus this plugin detects the 'user' texts, and substitutes TRUE for $flag if found.
If the $flag is TRUE, this plugin will check whether or not there is an IP in the texts. If found, it'll be hidden .
But, the first item of the old revision is different a little from others, so there is some customizing.

In Showing Diffs

The function is similar to that in recent changes and old revisions, but it'll modify HTML directly.

In Last Modified and Page Locking

If $event->data['username'] is likely to be an IP, the plugin will write $event->data['name'].
:!: You can't use the user name like IPs (that'll be accidentally replaced. e.g.: ).1)

Configuration and Settings

You can change the following setting by using the Configuration Manager.

OptionDescriptionValue TypeDefault Value
whenToHideWhen to run the plugin (In the text box, you can specify when to run if you'll use Hidingip Helper plugin in other plugins.)multiple choice from revision (Old revisions), recent (Recent changes), diff (Showing diffs), and userlink (COMMON_USER_LINK event (such as page locking and showing “last modified”))revision,recent,diff,userlink
rightToSeeIPWho can see IP addresses? (see config “manager” and “superuserpull-down choice from sp (Superusers) or mg (Managers (including superusers))sp


Change Log

  • 2018-06-01
    • Initial release
  • 2018-06-02
    • modified text garbling
  • 2018-10-24
    • Update with bug fixing (The problem about WARNING level errors, and the problem that the plugin didn't work well if the config Showuseras was username_link or email_link)
  • 2018-10-30
    • Adding some options (configs and the helper plugin section)
  • 2018-11-05
    • Fixed invalid syntax

Known Bugs and Issues

Currently none

ToDo/Wish List

Currently none

Contact Me

If you find some problems in this plugin, you can make issue topics on the GitHub page, or if you wanna contact me for other things, you can contact me by:


though I think that the case is rare
plugin/hidingip.txt · Last modified: 2020-07-14 10:08 by hokkaidoperson

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki