Find Jobs
Hire Freelancers

Create a PHP script that checks an IP address in different RBL lists

$30-5000 USD

In Progress
Posted over 11 years ago

$30-5000 USD

Paid on delivery
Create a PHP script that checks an IP address in different RBL lists The information is stored in a MySQL database. We want to run the script every hour with a cron job. Must run on php 5.3 The lookup of an IP in the rbl list is done with an NSlookup and the reverse dns example for IP [login to view URL] nslookup [login to view URL] see detailed information for full description and mySQL SQL dump. ## Deliverables The lookup of an IP in the rbl list is done with an NSlookup and the reverse dns example for IP [login to view URL] nslookup [login to view URL] result is ** server can't find [login to view URL]: NXDOMAIN This means IP is not on blacklist 2nd example for IP [login to view URL] nslookup [login to view URL] Address: [login to view URL] This means IP is on blacklist, depending on the rbl list the result will be somethink like 127.0.0.* The script \---|\---|\---|- The information is stored in a MySQL database. We want to run the script every hour with a cron job. 1/ first check the hour and take the hour (0 - 23) 2/ select clients from tbl_clients where runtime = hour 3/ for each of these clients: select IP addresses from tbl_ipaddress for these client 4/ for each IP find on which rbl list the were positive on last check from tbl_rblpositive (array) do the rbl check on each rbl server from tbl_rblservers where use = true update datetimelastchecked in tbl_ipaddress 5/ if a postive rbl is found: update datetimelastfound in tbl_ipaddress insert or update fields in tbl_rblpositive 6/ if an IP address is no longer positive remove it from tbl_rblpositive 7/ echo a list with new positives and list with removed positives 8/ make a status page where we place per client the list op IP addresses, Date and time last check, date time last blocked, number of blocks (# IP is on a different rbl list) see attached image RBL servers you can use to test [login to view URL] [login to view URL] [login to view URL] This is the MySQL DB (not final, you can change this if needed) /* MySQL Source Server Version: 5.0.96 Source Database: tsc_rblmon */ SET FOREIGN\_KEY\_CHECKS=0; \-- -|\---|\---|\---|\---|\---|\---|\---|\---|\---| -- Table structure for \`tbl_clients\` \-- -|\---|\---|\---|\---|\---|\---|\---|\---|\---| DROP TABLE IF EXISTS \`tbl_clients\`; CREATE TABLE \`tbl_clients\` ( \`type\` enum('deleted','active') default NULL, \`runtime\` enum('23','22','21','20','19','18','17','16','15','14','13','12','11','10','9','8','7','6','5','4','3','2','1','0') NOT NULL, \`name\` text NOT NULL, \`email\` text NOT NULL, \`clientid\` int(11) NOT NULL, PRIMARY KEY (\`clientid\`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; \-- -|\---|\---|\---|\---|\---|\---|\---|\---|\---| -- Table structure for \`tbl_ipaddress\` \-- -|\---|\---|\---|\---|\---|\---|\---|\---|\---| DROP TABLE IF EXISTS \`tbl_ipaddress\`; CREATE TABLE \`tbl_ipaddress\` ( \`id\` int(10) NOT NULL, \`clientid\` int(10) NOT NULL, \`datetimelastfound\` datetime default NULL, \`datetimelastchecked\` datetime default NULL, \`IP\` char(15) NOT NULL, PRIMARY KEY (\`id\`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; \-- -|\---|\---|\---|\---|\---|\---|\---|\---|\---| -- Table structure for \`tbl_log\` \-- -|\---|\---|\---|\---|\---|\---|\---|\---|\---| DROP TABLE IF EXISTS \`tbl_log\`; CREATE TABLE \`tbl_log\` ( \`id\` int(10) NOT NULL, \`datetimestartrun\` datetime NOT NULL, \`datetimeendrun\` datetime NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; \-- -|\---|\---|\---|\---|\---|\---|\---|\---|\---| -- Table structure for \`tbl_rblpositive\` \-- -|\---|\---|\---|\---|\---|\---|\---|\---|\---| DROP TABLE IF EXISTS \`tbl_rblpositive\`; CREATE TABLE \`tbl_rblpositive\` ( \`id\` int(10) NOT NULL, \`ipid\` int(10) NOT NULL, \`rblserverid\` int(10) NOT NULL, \`dateimelastfound\` datetime NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; \-- -|\---|\---|\---|\---|\---|\---|\---|\---|\---| -- Table structure for \`tbl_rblservers\` \-- -|\---|\---|\---|\---|\---|\---|\---|\---|\---| DROP TABLE IF EXISTS \`tbl_rblservers\`; CREATE TABLE \`tbl_rblservers\` ( \`rblid\` int(3) NOT NULL, \`server\` text NOT NULL, \`use\` enum('false','true') NOT NULL, PRIMARY KEY (\`rblid\`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Project ID: 2676058

About the project

8 proposals
Remote project
Active 11 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs

About the client

Flag of BELGIUM
Brugge, Belgium
5.0
36
Member since Feb 4, 2008

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.