PHPackages                             teppokoivula/page-render-ip-restriction - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Security](/categories/security)
4. /
5. teppokoivula/page-render-ip-restriction

ActivePw-module[Security](/categories/security)

teppokoivula/page-render-ip-restriction
=======================================

ProcessWire module that adds basic IP restriction capabilities for page rendering.

0.9.0(3y ago)210GPL-2.0-or-laterPHP &gt;=7.1

Since Mar 5Pushed 3y ago1 watchersCompare

[ Source](https://github.com/teppokoivula/PageRenderIPRestriction)[ Packagist](https://packagist.org/packages/teppokoivula/page-render-ip-restriction)[ Docs](https://github.com/teppokoivula/PageRenderIPRestriction)[ RSS](/packages/teppokoivula-page-render-ip-restriction/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (2)Versions (2)Used By (0)

Page Render IP Restriction Module
=================================

[](#page-render-ip-restriction-module)

This module adds basic IP restriction capabilities to page rendering. Please note that this is only meant to be used as an additional security measure in addition to typical username/password authentication or something similar, not on it's own.

This is very important especially if protected content is valuable and/or sensitive. In those cases it would also be a much better idea to add all IP restriction rules within (software or hardware) firewall instead of relying on a module.

Installing
----------

[](#installing)

Copy PageRenderIPRestriction folder to your /site/modules/, go to Admin &gt; Modules, hit "Check for new modules" and install Page Render IP Restriction. That's it.

How to use
----------

[](#how-to-use)

Default settings for this module don't introduce any restrictions. You should edit module settings (Admin &gt; Modules &gt; Page Render IP Restriction) to include those IPs you wish to allow access to your site for. Please note that if you fill in at least one IP address and check both "Restrict admin access" and "Restrict access for authenticated users" checkboxes *you will no longer be able to reach Admin without valid IP*.

Since module version 0.9.0 it is possible to specifically set a list of blocked IPs. If blocked IPs are defined, only users with one of these IP addresses are prevented from accessing the site.

Settings
--------

[](#settings)

**Allowed IPs**

- IP addresses that have access to your site
- Each address on its own line
- Supported formats: 127.0.0.1 (individual IPs), 127.0.0.1-127.0.0.255 (IP ranges) and 127.0.0.0/24 (CIDR)
- Default: null

**Blocked IPs**

- IP addresses that should not get access to your site
- Each address on its own line
- Supported formats: 127.0.0.1 (individual IPs), 127.0.0.1-127.0.0.255 (IP ranges) and 127.0.0.0/24 (CIDR)
- Default: null

**Use client headers when checking IP**

- Trust client headers when IP address is checked
- This option may be required in case your site is behind a proxy or firewall
- Default: false

**Access denied message**

- What message should users get when they're being denied access?
- Leave blank to show no message. HTML markup is supported.
- Default: null

**Access denied action**

- What should happen when user is denied access?
- Possible values: "Exit with specified message" or "Redirect user to login page", but latter option has no effect if admin access is also restricted
- Default: null (send HTTP/1.1 403 Forbidden header + no message)

**Restrict admin access**

- If you check this box, admin pages will only be available for users with valid IPs
- Default: false

**Restrict access for authenticated users**

- If you check this box, IP restriction will also apply to authenticated (logged in) users.
- Default: false

**Exceptions to access restriction (allowed paths)**

- With this setting you can define paths that are excluded from access restriction
- You can optionally specify the request method: /my-allowed-url/ POST
- Default: null

**Exceptions to access restriction (allowed domains)**

- With this setting you can define domains that are excluded from access restriction
- Default: null

###  Health Score

17

—

LowBetter than 6% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity30

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1162d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/4224e4c74fcea66b97377c3b32756fe54820135e573eb05a79b181783fe194df?d=identicon)[teppokoivula](/maintainers/teppokoivula)

---

Top Contributors

[![teppokoivula](https://avatars.githubusercontent.com/u/1252021?v=4)](https://github.com/teppokoivula "teppokoivula (2 commits)")

---

Tags

processwiremodule

### Embed Badge

![Health badge](/badges/teppokoivula-page-render-ip-restriction/health.svg)

```
[![Health](https://phpackages.com/badges/teppokoivula-page-render-ip-restriction/health.svg)](https://phpackages.com/packages/teppokoivula-page-render-ip-restriction)
```

###  Alternatives

[adrianbj/tracy-debugger

The ultimate debugging and development tool for ProcessWire.

925.2k](/packages/adrianbj-tracy-debugger)[teppokoivula/search-engine

SearchEngine is a ProcessWire CMS/CMF module for indexing and searching site contents.

181.3k1](/packages/teppokoivula-search-engine)[exadium/silverstripe-invisible-spam-protection

Very simple anti spam protection based on principle that automated spammers enter bogus information in all form fields. Field is added to form that is hidden using CSS hiding it from human users. Form is only allowed to be submitted if field is empty. Includes an EditableInvisibleSpamField to integrate with the UserForms module.

112.1k](/packages/exadium-silverstripe-invisible-spam-protection)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
