protected function validateCustomDomain($attribute, $value, $parameters) { $host = removeSchemaUrl($value); $ip_map = config('gtw.ip_map'); // This should be Ip address of members.gtwhero.kvdev.kvsocial.com $dns_config = config('gtw.dns_config'); // DNS IP Look Up $valid_dns_ip_1 = false; $valid_dns_ip_2 = false; $valid_dns_ip_3 = false; foreach ($dns_config as $index => $dns_ip) { $nslookup = 'nslookup ' . $host . ' ' . $dns_ip; exec($nslookup, $output); if (isset($output[3]) && isset($output[4])) { $domain = trim(str_replace('Name:', '', $output[3])); $ip = trim(str_replace('Address:', '', $output[4])); if ($domain == $value && $ip == $ip_map) { if ($index == 0) { $valid_dns_ip_1 = true; } else { if ($index == 1) { $valid_dns_ip_2 = true; } else { if ($index == 2) { $valid_dns_ip_3 = true; } } } } else { // if any one fails break the loop break; } } else { // if dns look up fails break it break; } } if ($valid_dns_ip_1 && $valid_dns_ip_2 && $valid_dns_ip_3) { return TRUE; } else { return FALSE; } }
function postValidateWebinarDomain(Request $request) { if ($request->ajax()) { $custom_domain = $request->input('custom_domain'); $host = removeSchemaUrl($custom_domain); $ip_map = config('gtw.ip_map'); // This should be Ip address of members.gtwhero.kvdev.kvsocial.com $dns_config = config('gtw.dns_config'); $google_dns_check = false; $level3_dns_check = false; $open_dns_check = false; foreach ($dns_config as $index => $dns_ip) { try { $nslookup = 'nslookup ' . $host . ' ' . $dns_ip; exec($nslookup, $output); if (isset($output[3]) && isset($output[4])) { $domain = trim(str_replace('Name:', '', $output[3])); $ip = trim(str_replace('Address:', '', $output[4])); if ($domain == $host && $ip == $ip_map) { if ($index == 0) { $google_dns_check = true; } else { if ($index == 1) { $level3_dns_check = true; } else { if ($index == 2) { $open_dns_check = true; } } } } } } catch (\Exception $e) { } } echo json_encode(array('google_dns_check' => $google_dns_check, 'level3_dns_check' => $level3_dns_check, 'open_dns_check' => $open_dns_check)); } }