Skip to content

Simple library to check an IP address against a domain's SPF record

License

Notifications You must be signed in to change notification settings

techzolab/spf-record-check-php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PHP-SPF-Check

Simple library to check an IP address against a domain's SPF record

Installation

This library is available through Composer. Run composer require techzolab/toolsspfcheck or add this to your composer.json:

{
  "require": {
    "techzolab/toolsspfcheck": "^1"
  }
}

Usage

Create a new instance of ToolsSPFCheck. The constructor requires a DNSRecordGetterInterface to be passed. Currently, you have two options:

  • DNSRecordGetter which uses PHP's DNS functions to get data
  • DNSRecordGetterDirect which uses the PHP DNS Direct Query Module to get data.
<?php
use Nzldev\ToolsSPFCheck\ToolsSPFCheck;
use Nzldev\ToolsSPFCheck\DNSRecordGetter;

require('vendor/autoload.php');

$checker = new ToolsSPFCheck(new DNSRecordGetter()); // Uses php's dns_get_record method for lookup.
var_dump($checker->isIPAllowed('127.0.0.1', 'test.com'));

// or

$checker = new ToolsSPFCheck(new DNSRecordGetterDirect("8.8.8.8")); // Uses phpdns, allowing you to set the nameserver you wish to use for the dns queries.
var_dump($checker->isIPAllowed('127.0.0.1', 'test.com'));

Return value is one of ToolsSPFCheck::RESULT_PASS, ToolsSPFCheck::RESULT_FAIL, ToolsSPFCheck::RESULT_SOFTFAIL, ToolsSPFCheck::RESULT_NEUTRAL, ToolsSPFCheck::RESULT_NONE, ToolsSPFCheck::RESULT_PERMERROR, ToolsSPFCheck::RESULT_TEMPERROR

Missing features

A few features are still missing from this library at the moment. Here's a partial list of those features:

You are very welcome to submit a pull request adding even part of those features.

About

Simple library to check an IP address against a domain's SPF record

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages