Cool script.

Thanks,
Ryan Chien<mailto:[email protected]>
Senior Network Engineer
3E Company<http://www.3ecompany.com/>
T: 760-602-8689
F: 760-918-4007

From: [email protected] 
[mailto:[email protected]] On Behalf Of [email protected]
Sent: Wednesday, June 18, 2014 1:01 PM
To: [email protected]; [email protected]
Subject: Re: [arin-tech-discuss] This is getting a little irritating ...

Eric,

I checked with our development, the reason we are getting this is because the 
zone is not dynamic -not updateable- and the server is not the Master for that 
zone. Ideally we want 'Notify' coming only from the Master server and for 
dynamic zones only. As of 172.17.32.2 seems to be affected, my guess is that 
you took the log file before that 'authentication' was cached for that 
server/zone.
 In short this too is benign error and shall go away once we update the 
database.



Best regards,


Tarig Shoush

From: 
[email protected]<mailto:[email protected]> 
[mailto:[email protected]] On Behalf Of Eric Dynamic
Sent: Saturday, January 04, 2014 8:08 PM
To: [email protected]<mailto:[email protected]>
Subject: [arin-tech-discuss] This is getting a little irritating ...

Now after having written a script that worked marvelously for at least several 
says, all of a sudden now it is failing.

Why? Because once again, your service is returning what it feels like versus 
what I asked for.

Here is what I got from asking for JSON:

processing 204.12.8.28

<?xml version='1.0'?><?xml-stylesheet type='text/xsl' 
href='http://whois.arin.net/xsl/website.xsl' ?><net 
xmlns="http://www.arin.net/whoisrws/core/v1";<http://www.arin.net/whoisrws/core/v1>
 
xmlns:ns2="http://www.arin.net/whoisrws/rdns/v1";<http://www.arin.net/whoisrws/rdns/v1>
 xmlns:ns3="http://ww
w.arin.net/whoisrws/netref/v2" 
termsOfUse="https://www.arin.net/whois_tou.html";<https://www.arin.net/whois_tou.html>><registrationDate>2011-02-03T11:23:31-05:00</registrationDate><ref>http://whois.arin.net/rest/net/NET-204-12-8-24-1</ref><customerRef
 name="
Stylelife" 
handle="C02687103">http://whois.arin.net/rest/customer/C02687103</customerRef><endAddress>204.12.8.31</endAddress><handle>NET-204-12-8-24-1</handle><name>STYLELIFE</name><netBlocks><netBlock><cidrLength>29</ci
drLength><endAddress>204.12.8.31</endAddress><description>Reassigned</description><type>S</type><startAddress>204.12.8.24</startAddress></netBlock></netBlocks><originASes><originAS>AS20021</originAS></originASes><parentN
etRef name="HOSTMYSITE" 
handle="NET-204-12-0-0-1">http://whois.arin.net/rest/net/NET-204-12-0-0-1</parentNetRef><startAddress>204.12.8.24</startAddress><updateDate>2011-02-03T11:23:31-05:00</updateDate><version>4</versio
n></net>
204.12.8.28
 no ns4:pft

Now I am getting XML.

I don't have time to keep figuring out new parsers. I already write the code 
for the JSON. And it was working, as I said, for several days just fine.
Now for no reason I can see, suddenly, asking for JSON gives me XML. I don't 
feel like writing something that has to try to figure out what you actually 
sent versus what I requested.
This time I request that you FIX THIS.

=================

#!/usr/local/bin/php
<?php
// SQL 
#####################################################################################################################################################################################
function sqlerr()   //$ER_DUP_Entry=1062;
{ if(($e = mysql_errno()) == 1062) $h = "Duplicate Key, ignored."; else $h = 
mysql_error(); $h = str_replace("'","",$h); $m = "DB:$e:$h"; echo "$m\n"; }
function gqquery($q) { if(mysql_query("$q")) return 0; sqlerr(); return 1; }
function mqquery($q) { if($qr = mysql_query("$q")) return $qr; sqlerr(); return 
0; }
function sqquery($q) { $r = false; if($qr = mqquery($q)) { $r = 
mysql_fetch_object($qr); if(!$r) $r = false; mysql_free_result($qr); } 
return($r); }
function attach() { global $db; $db = 
mysql_connect("localhost","*****","*****"); if(!$db) return(0); 
return(mysql_select_db("sdfilter",$db)); }
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// MAIN
$aTZ = "America/Los_Angeles"; date_default_timezone_set($aTZ);                  
// timezone (absurd format)
global $errno, $fh, $db; $db=0;                                                 
// globals
error_reporting(0x1F);                                                          
// complain about anything
$db = attach(); if(!$db) {echo("open db failed."); return(1);}                  
// sordid error handling

$buf = "";
$v = array();
if(!($C = curl_init())) exit(0);
curl_setopt($C,CURLOPT_RETURNTRANSFER,true);

if(!($fh=fopen("php://stdin","r"))) exit(0);
for($line = 1;;$line++) {
    if(!($A = fgets($fh))) break;
    echo "processing $A\n";
    if(4 != sscanf($A,"%d.%d.%d.%d",&$n3,&$n2,&$n1,&$n0)) break;
    $AA = sprintf("%02X%02X%02X%02X",$n3,$n2,$n1,$n0);
    if($r = sqquery("select afrom,ato,contact from abuse where afrom <= '$AA' 
and '$AA' <= ato limit 1")) {
        echo "$A already found in abuse $r->afrom <= $AA <= $r->ato 
*$r->contact), ignoring request.\n";
        continue;
        }
    
curl_setopt($C,CURLOPT_URL,"http://whois.arin.net/rest/ip/$A/pft.json";<http://whois.arin.net/rest/ip/$A/pft.json>);
    $pft = curl_exec($C);
echo "$pft\n";   // gives the output shown above
    for($rc = 1;;) {
        if(!$pft) { echo "$A: no pft\n"; break; }
        $Q = json_decode($pft,true); $Q = $Q["ns4:pft"]; if(!$Q) { echo "$A no 
ns4:pft\n"; break; }
        if(!isset($Q["poc"])) { echo "$A: no poc\n"; break; }
        if(!isset($Q["poc"][0])) { echo "$A: no poc[0]\n"; break; }
        $F = $Q["net"]["startAddress"]["$"]; if( 4 != 
sscanf($F,"%d.%d.%d.%d",&$n3,&$n2,&$n1,&$n0) ) break;
        $afrom = sprintf("%02X%02X%02X%02X",$n3,$n2,$n1,$n0);
        $T = $Q["net"]["endAddress"]["$"]; if( 4 != 
sscanf($T,"%d.%d.%d.%d",&$n3,&$n2,&$n1,&$n0) ) break;
        $ato = sprintf("%02X%02X%02X%02X",$n3,$n2,$n1,$n0);
        if( $afrom > $ato ) break;
        $n = count($Q["poc"]); $contact = "";
        for( $j = 0; $j < $n; $j++ ) {
            //echo "$A poc $j description " . 
$Q["poc"][$j]["@relatedDescription"] ."\n";
            if($Q["poc"][$j]["@relatedDescription"] == "Abuse") {
                $m = count($Q["poc"][$j]["emails"]["email"]);   // we either 
get [$] or [0]...[n] in this modern world
                if($m == 1) {
                    $contact = $Q["poc"][$j]["emails"]["email"]["$"];
                    //echo "single records, $contact.\n";
                    }
                else {  // save the first contact in any case and if it or a 
later one contains "abuse", use that.
                    $contact = strtolower($Q["poc"][$j]["emails"]["email"][0]);
                    //echo "$A multiple records, default $contact.\n";
                    if(strstr($contact,"abuse")) break;
                    else for($k=1, $x = 
strtolower($Q["poc"][$j]["emails"]["email"][$k]); $k<$m;$k++) 
if(strstr($x,"abuse")) { $contact = $x; break; }
                    echo "$A multiple records, using $contact.\n";
                    }
                break;
                }
            }
        if(!$contact || $contact == "[email protected]"<mailto:[email protected]> || 
$contact == "[email protected]"<mailto:[email protected]> || $contact == 
"[email protected]"<mailto:[email protected]>) break;   // if 
[email protected]<mailto:[email protected]> e.g. then should ask RIPE.
        echo "RESULT:: $afrom - $ato\t$contact\n";
        $afrom = sprintf("%08X",$afrom); $ato = sprintf("%08X",$ato);
        gqquery("insert into abuse (afrom,ato,contact) values 
('$afrom','$ato','$contact')");
        gqquery("update counts set count = count + 1 where 
class='database/reqfilled'");
        $rc = 0;
        break;
        }
    // we no longer insert (a,0) into abuse to remember what we want.
    }

curl_close($C);
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
?>



_______________________________________________
arin-tech-discuss mailing list
[email protected]
http://lists.arin.net/mailman/listinfo/arin-tech-discuss

Reply via email to