PHPackages                             born-digital/ip\_range\_access - 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. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. born-digital/ip\_range\_access

ActiveDrupal-module[Authentication &amp; Authorization](/categories/authentication)

born-digital/ip\_range\_access
==============================

Restricts access to an allowed list of IP addresses

1.0.6(1y ago)02.9k↑12.5%PHP

Since Feb 19Pushed 1y agoCompare

[ Source](https://github.com/Born-Digital-US/ip_range_access)[ Packagist](https://packagist.org/packages/born-digital/ip_range_access)[ RSS](/packages/born-digital-ip-range-access/feed)WikiDiscussions main Synced yesterday

READMEChangelogDependenciesVersions (7)Used By (0)

IP Range Access
===============

[](#ip-range-access)

Introduction
------------

[](#introduction)

Drupal 10 Module that provides a Context Condition that checks the user's IP address, and a Context Reaction that denies access to nodes and media. If the Reaction executes, it returns a 403 Access Denied response to the user (or optionally redirect them to a proxy to authenticate before accessing the resource).

This module's primary use case was to provide IP access control to [Islandora](https://islandora.ca/) content, but it can be used without Islandora.

Requirements
------------

[](#requirements)

- [Context](https://www.drupal.org/project/context)

Installation
------------

[](#installation)

1. Clone this repo into your Islandora's `drupal/web/modules/contrib` directory.
2. Enable the module either under the "Admin &gt; Extend" menu or by running `drush en -y ip_range_access`.

Configuration
-------------

[](#configuration)

The Condition and Reaction are independent of each other (Context FTW!) but if your intent is to block a user from accessing content based on their IP address, do the following:

1. Create a Context and choose the "User's IP address" Condition.
2. Enter the ranges or individual IP addresses from where access is prohibited.
3. (Optional) Add additional Conditions ("Node has parent", "Node has term", "User role", etc.). You probably want to add the "User's Role" condition to make sure that administrators aren't blocked from accessing content.
4. Choose the "Deny access to node or media" Reaction and check the box.
    - (Optional) Add the URL of a proxy, such as Ezproxy, to the reaction's configuration, e.g., `https://proxy.example.com/login?url=`.

Sponsors
--------

[](#sponsors)

This work was made possible via the generous contribution of [Boston College](https://ur.bc.edu/).

Current maintainer
------------------

[](#current-maintainer)

- [Born-Digital](https://born-digital.com)

Contributing
------------

[](#contributing)

Bug reports, improvements, feature requests, and PRs welcome. Before you open a pull request, please open an issue.

License
-------

[](#license)

[GPLv2](http://www.gnu.org/licenses/gpl-2.0.txt)

###  Health Score

32

—

LowBetter than 69% of packages

Maintenance47

Moderate activity, may be stable

Popularity21

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 90.9% 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

Every ~15 days

Total

6

Last Release

421d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/507888823c4f3dc3538e2b734f9e1e2d29d37087ac3044c25b000dbbff725d58?d=identicon)[noahwsmith](/maintainers/noahwsmith)

---

Top Contributors

[![dannylamb](https://avatars.githubusercontent.com/u/20773151?v=4)](https://github.com/dannylamb "dannylamb (10 commits)")[![dara2](https://avatars.githubusercontent.com/u/72275887?v=4)](https://github.com/dara2 "dara2 (1 commits)")

### Embed Badge

![Health badge](/badges/born-digital-ip-range-access/health.svg)

```
[![Health](https://phpackages.com/badges/born-digital-ip-range-access/health.svg)](https://phpackages.com/packages/born-digital-ip-range-access)
```

###  Alternatives

[kartik-v/yii2-password

Useful password strength validation utilities for Yii Framework 2.0

761.3M17](/packages/kartik-v-yii2-password)[vitalybaev/laravel5-dkim

Laravel 5/6 package for signing outgoing messages with DKIM.

3163.1k](/packages/vitalybaev-laravel5-dkim)

PHPackages © 2026

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