Récupérer les Confirmed et Unconfirmed de son pool en curl
Depuis quelque temps, je mine des DogeCoin qui est une jeune crypto-monnaie du même genre que le célèbre Bitoin que tout le monde parle depuis quelque temps, mais qui est pour moi bien plus sympathique.
Pour bien miner, il est recommandé de le faire avec un pool autrement on pourrait ne rien recevoir même en minant pendant des mois. Pour cela j’utilise le pool http://doge.hashfaster.com, mais il y en a beaucoup d’autres.
Ces pools de minages proposent des « API » qui permettent de récupérer certaines informations simplement en json, le problème c’est que c’est souvent incomplet.
Donc pour des raisons pratiques, il arrive qu’on est envie de savoir combien on va recevoir de DogeCoin c’est à dire les Confirmed et Unconfirmed sans aller sur le pool pour diverses raisons ou d’autres informations.
Pour réussir à se connecter, il faut t’ou d’abord regarder ce qu’il y a dans le formulaire de connexion qui un des plus basiques: il y a un input username, un input password et un input hidden ctoken qui est « vide ». Puis l’adresse ou pointe le formulaire: http://doge.hashfaster.com/index.php?page=login
On à maintenant tout ce qu’il faut pour se connecter!!!
On va tout d’abord faire une requête curl en POST à l’adresse donnée plus haut avec l’username qui est l’adresse mail et le mot de passe de votre compte. Comme on veut pouvoir accéder à une autre page du pool, on va donc créer un cookie pour garder la connexion active. Une fois connecté on pourra aller sur toutes les pages que l’on veut et donc récupérer ces fameux Confirmed et Unconfirmed avec deux petits preg_match_all et bien plus encore.
Pour des raisons pratiques et de chargement plus rapide des pages, les données récupérées seront sauvegardées dans un array puis stockées dans un fichier, mais on peut le faire aussi dans une BDD.
Ce qui donne dans un fichier:
a:2:{s:9: »confirmed »;s:12: »1,428.675849″;s:11: »unconfirmed »;s:9: »36.841546″;}
Bien la fin on supprime le cookie!!!
Le code:
$lien = 'http://doge.hashfaster.com/index.php?page=login'; // Adresse de connexion $lien2 = 'http://doge.hashfaster.com/index.php?page=dashboard'; // La page cible // Info de connexion: $postfields = array( 'username' => 'adresse_mail', 'password' => 'mot_de_passe', 'ctoken' => '' ); $path_cookie = 'connexion_temporaire.txt'; if (!file_exists(realpath($path_cookie))) touch($path_cookie); // ---------- ---------- ---------- ---------- ---------- $curl = curl_init(); // On démarre curl curl_setopt($curl, CURLOPT_URL, $lien); // On accède à la page de connexion // curl_setopt($curl, CURLOPT_COOKIESESSION, true); curl_setopt($curl, CURLOPT_COOKIEJAR, realpath($path_cookie)); // On sauvegarde le cookie curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // Résultat stocké dans une variable curl_setopt($curl, CURLOPT_POST, true); // Envoi d'une requête POST curl_setopt($curl, CURLOPT_POSTFIELDS, $postfields); // Les informations de connexion curl_setopt($curl, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'); $return = curl_exec($curl); // Résultat dans une variable curl_close($curl); // On ferme curl // ---------- ---------- ---------- ---------- ---------- $curl = curl_init(); // On démarre curl curl_setopt($curl, CURLOPT_URL, $lien2); // L'url cible curl_setopt($curl, CURLOPT_COOKIESESSION, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // Résultat stocké dans une variable curl_setopt($curl, CURLOPT_COOKIEFILE, realpath($path_cookie)); // On utilise le cookie curl_setopt($curl, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'); $return = curl_exec($curl); // Résultat dans une variable curl_close($curl); // On ferme curl // ---------- ---------- ---------- ---------- ---------- // Le preg_match_all qui permet de récupérer les DogeCoin confirmed: preg_match_all('`<span class="label label-success pull-right bigfont" id="b-confirmed">([0-9-.,]+)</span>`Uis', $return, $match, PREG_SET_ORDER); $array['confirmed'] = $match[0][1]; // ---------- ---------- ---------- ---------- ---------- // Le preg_match_all qui permet de récupérer les DogeCoin unconfirmed: preg_match_all('`<span class="label label-warning pull-right bigfont" id="b-unconfirmed">([0-9-.,]+)</span>`Uis', $return, $match, PREG_SET_ORDER); $array['unconfirmed'] = $match[0][1]; // ---------- ---------- ---------- ---------- ---------- file_put_contents('pool_hashfaster.txt', serialize($array) ); // On serialize et on écrit le tout dans le fichier // ---------- ---------- ---------- ---------- ---------- unlink($path_cookie); // On supprime le cookie
Tous les codes sont testés et sont fonctionnels, si il arrive qu'un de ces codes ne fonctionne pas chez vous, merci de me le signaler.