Skip to content

jtanjung/proxier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Proxier

Free proxy seeder for PHP

Install

Via Composer

composer require jtanjung/proxier

Requirements

This package require a service from jtanjung/pehape which contain several webdriver executable files that are needed by WebPageService to run its functionalities. As for the default webdrivers, please refer to these 3 different browser below:

  • Chrome v90.x
  • Firefox v75.0
  • Opera v75.x

Links

For other version of the webdriver, please follow these links below:

Note: The version of the browser and its driver must be compatible!

How to use

Seeding Proxy

Fetch proxy IPs from a free proxy sites:

use Proxier\ProxySeeder;

$seeder = new ProxySeeder();
$proxy = $seeder->FreeProxyListNet();
$proxy->SetTimeOut(60);
$proxy->Seed();

Get a Random Proxy

Get a random proxy information from the cache:

use Proxier\ProxySeeder;

$seeder = new ProxySeeder();
// Try to get random proxy from the cache
echo "Get a random proxy....\n";
// Call Get function to get a random entry, or pass md5 value of IP:Port
$proxy = $seeder->Seed()->Get();
echo json_encode($proxy) . "\n";

Using Event Listener

Easy coding by binding event listeners to the seeder:

use Proxier\ProxySeeder;

$seeder = new ProxySeeder();
$seeder->Bind('OnLoading', function(){
  echo "Start seeding, please wait...\n";
});
$seeder->Bind('OnSeeding', function($value){
  echo json_encode($value) . "\n";
  // You can put block code here to insert the new proxy to database
  /** ->Save([
   *   "ip" => $value->IP,
   *   "port" => $value->Port
   *   "location" => $value->Location
   * ]);
   */
});
$seeder->Bind('OnComplete', function($value){
  echo "\nComplete...\n";
  echo $value->count() ." proxy found.";
});
$seeder->Bind('OnError', function($msg, $exc){
  echo "Message = '$msg'\n";
  // throw $exc;
});

More options

Testing proxy using ProxyTester:

$tester = new Proxier\ProxyTester();
$tester->SetProxy("<IP>", "<PORT>");
$tester->Bind('OnError', function($msg, $exc){
  echo "Message = '$msg'\n";
  // throw $exc;
});
$tester->Run();

See more examples here