Guest User

Untitled

a guest
Oct 24th, 2016
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. <?php
  2. $filename = "ip.list";
  3. $prefix = "2a04:5200:8";
  4.  
  5. function generate_ipv6($prefix){
  6. function generate_ipv6_block() {
  7. $seed = str_split('1234567890abcdef');
  8. shuffle($seed);
  9. $block = join("", $seed); // Symbol array to string
  10. $block = substr($block, 0, 4);
  11. return $block;
  12. }
  13.  
  14. $a = generate_ipv6_block();
  15. $b = generate_ipv6_block();
  16. $c = generate_ipv6_block();
  17. $d = generate_ipv6_block();
  18. $e = generate_ipv6_block();
  19.  
  20. return "{$prefix}:{$a}:{$b}:{$c}:{$d}:{$e}";
  21. }
  22.  
  23. function generate_unique_ipv6($prefix, $iplist) {
  24. $ipv6 = null; // Scope
  25.  
  26. do {
  27. $ipv6 = generate_ipv6($prefix);
  28. } while(in_array($ipv6, $iplist));
  29.  
  30. return $ipv6;
  31. }
  32.  
  33. if(file_exists($filename)){
  34. $ips = trim(file_get_contents($filename));
  35. $ips = explode("\n", $ips);
  36. }
  37. else{
  38. $ips = [];
  39. }
  40.  
  41. $ip = generate_unique_ipv6($prefix, $ips);
  42. $ips[] = $ip;
  43. file_put_contents($filename, implode("\n", $ips));
  44.  
  45. echo $ip;
Add Comment
Please, Sign In to add comment