I’ve been a code junkie recently.


So, recently I have been doing a lot of coding, both bash and php/html. The other day I was at work and a co-worker of mine who handles abuse complaints mentioned he had to process over 100 domains for something he was working on. I instantly thought about writing code to accomplish it, I asked what he needed off of the domains, to which he responded IP and who owns it.

At first I started with a pretty simple script, with two domains hard coded into the script for testing purposes, which worked decently. 

Here is the original script.

<?php
$x=array(“domain.tld”,”domain.tld”);
foreach($x as $host){
$ip = gethostbyname($host);

echo “$host – $ip”;
echo “<br />”;

}

?>

While this works, it was missing a few things, it would be really difficult to enter all 100 domains, each needing to be separated by a comma and wrapped in quotes, just a little too much work for me. Plus it doesn’t have the whois information. So, onward I go.

 

My second incarnation of the script allows for user entry of the domains, the only thing that’s needed is a comma separated list.

Here is the second script.

<html>
<form name=”list” action”” method=”post”>
<input type=”text” name=”list”>
<input type=”submit” name=”submit” value=”Submit”>
</form>
</html>
<?php
if(isset($_POST[‘submit’])){
$list = $_POST[‘list’];

$listreturn = explode(‘,’, $list);
foreach($listreturn as $host){
$ip = gethostbyname($host);

$whois = shell_exec(‘whois -h whois.arin.net ‘ . $ip);
$result = preg_match(‘/^OrgName:s*(.+)$/m’, $whois, $matches);
$org = $matches[1];
echo “$host – $ip – <b>$org</b>”;
echo “<br />”;
}
}

?>

This script offers the ability to have a list of comma separated domains and it does all the work for you. It takes the domains, gets the IP address of the domain and then does a whois on that IP address to determine who owns the IP and then presents a nice list of information.

Within an hour I had the second version up and running and about 5 minutes later the list of domains that my co-worker had compiled, was processed and done.