Advertisement
Guest User

Untitled

a guest
Dec 16th, 2016
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.10 KB | None | 0 0
  1. ar Ziggo = (function() {
  2. var obj = { ip: "192.168.178.1" };
  3.  
  4. function random_string() {
  5. var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  6. var length = 10;
  7. var result = "";
  8. for (var i = 0; i < length; i++)
  9. result += chars[Math.floor(Math.random() * chars.length)];
  10.  
  11. return result;
  12. }
  13.  
  14. function create_iframe(name) {
  15. var iframe = document.createElement("iframe");
  16. iframe.width = iframe.height = "0";
  17. iframe.style.visibility = "hidden";
  18. iframe.name = name;
  19. document.body.appendChild(iframe);
  20. return iframe;
  21. }
  22.  
  23. function send_form(args, url, iframe) {
  24. var form = document.createElement("form");
  25. form.action = "http://" + obj.ip + url;
  26. form.method = "POST";
  27. form.target = iframe.name;
  28. for (var i in args) {
  29. var arg = args[i];
  30.  
  31. var element = document.createElement("input");
  32. element.type = "hidden";
  33. element.name = i;
  34. element.value = arg;
  35.  
  36. form.appendChild(element);
  37. }
  38.  
  39. document.body.appendChild(form);
  40.  
  41. setTimeout(function() {
  42. form.submit();
  43. }, 0);
  44.  
  45. setTimeout(function() {
  46. iframe.parentNode.removeChild(iframe);
  47. }, 5000);
  48.  
  49. return form;
  50. }
  51.  
  52. var callbacks = {};
  53.  
  54. function call_backredirect(data, url, callback)
  55. {
  56. var token = random_string();
  57. var frame = create_iframe(token);
  58. var timeout;
  59.  
  60. frame.contentWindow.name = token;
  61.  
  62. frame.onload = function() {
  63. frame.contentWindow.name = token;
  64. }
  65.  
  66. callbacks[token] = function(ev) {
  67. if (ev.data == "check") {
  68. frame.contentWindow.postMessage("success", "*");
  69. frame.parentNode.removeChild(frame);
  70. callback(true);
  71. clearTimeout(timeout);
  72. }
  73. }
  74.  
  75. send_form(data, url, frame);
  76.  
  77. timeout = setTimeout(function() {
  78. callback(false);
  79. }, 5000);
  80. }
  81.  
  82. // --- WE ARE GOING BACK TO WHERE IT WAS ---
  83.  
  84. obj.loggedin = function(callback) {
  85. call_backredirect({
  86. PortForwardingCreateRemove: 1,
  87. PortForwardingTable: 0
  88. }, "/goform/RgForwarding", callback);
  89. }
  90.  
  91. obj.login = function(user, pass) {
  92. var frame = create_iframe(random_string());
  93. send_form({
  94. loginUsername: user,
  95. loginPassword: pass
  96. }, "/goform/loginMR3", frame);
  97. }
  98.  
  99. obj.set_dnssettings = function(settings, callback) {
  100. if (settings.dns)
  101. settings.dns = [];
  102. for (var i in settings.dns)
  103. settings.dns[i] = settings.dns[i].split(".");
  104.  
  105. call_backredirect({
  106. DhcpServerEnable: "0x1000",
  107. StartingLocalAddressIP3: settings.starting_ip || "10",
  108. NumberOfCpes: settings.clients || "64",
  109. LeaseTime: settings.lease_time || "3600",
  110. StaticDNS1IP0: (settings.dns.length > 0 && settings.dns[0].length > 3) ? settings.dns[0][0] : "0",
  111. StaticDNS1IP1: (settings.dns.length > 0 && settings.dns[0].length > 3) ? settings.dns[0][1] : "0",
  112. StaticDNS1IP2: (settings.dns.length > 0 && settings.dns[0].length > 3) ? settings.dns[0][2] : "0",
  113. StaticDNS1IP3: (settings.dns.length > 0 && settings.dns[0].length > 3) ? settings.dns[0][3] : "0",
  114. StaticDNS2IP0: (settings.dns.length > 1 && settings.dns[1].length > 3) ? settings.dns[1][0] : "0",
  115. StaticDNS2IP1: (settings.dns.length > 1 && settings.dns[1].length > 3) ? settings.dns[1][1] : "0",
  116. StaticDNS2IP2: (settings.dns.length > 1 && settings.dns[1].length > 3) ? settings.dns[1][2] : "0",
  117. StaticDNS2IP3: (settings.dns.length > 1 && settings.dns[1].length > 3) ? settings.dns[1][3] : "0",
  118. StaticDNS3IP0: (settings.dns.length > 2 && settings.dns[2].length > 3) ? settings.dns[2][0] : "0",
  119. StaticDNS3IP1: (settings.dns.length > 2 && settings.dns[2].length > 3) ? settings.dns[2][1] : "0",
  120. StaticDNS3IP2: (settings.dns.length > 2 && settings.dns[2].length > 3) ? settings.dns[2][2] : "0",
  121. StaticDNS3IP3: (settings.dns.length > 2 && settings.dns[2].length > 3) ? settings.dns[2][3] : "0",
  122. ApplyAction: "1",
  123. LeaseToFree: "",
  124. LeaseSelected: "",
  125. ForceAction: "",
  126. }, "/goform/RgDhcp", callback);
  127. }
  128.  
  129. window.addEventListener("message", function(ev) {
  130. if (callbacks[ev.source.name] != undefined)
  131. callbacks[ev.source.name](ev);
  132. });
  133.  
  134. if (window.top != window)
  135. window.top.postMessage("check", "*");
  136.  
  137. return obj;
  138. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement