参考:https://www.lzhs.com/2022/139.html
目前.sv域名没有公开的whois服务器,只有去注册局官网在线查询whois。
可以通过curl查询到whois,然后配合strpos函数,就可以获得.sv域名的状态,从而预测.sv的掉落时间并实施抢注。
这种查询方式可适用于仅提供在线查询whois的其他后缀。
首先打开 https://svnet.sv/ ,这是.sv域名的官网。
官网首页就是查询域名的输入框,后面是Consultar(西班牙语:咨询)按钮,查看这个按钮的点击触发。
<input type="button" name="enviar" class="btn form-control btn-primary" value="Consultar" onclick="BuscarDominio()">
可以看到,这个按钮触发的是 BuscarDominio() 这个function,在页面内的 JS 代码如下:
/// BUSCAR DOMINIOS en la base de datos function BuscarDominio() { //alert("Hola"); Nombre = document.getElementById('nombre').value; idE = document.getElementById('ID').value; //alert(idE); if(Nombre != ''){ objReq = new getRequestObject(); objReq.onreadystatechange = procesaMadre; objReq.open("POST",'https://svnet.sv/accion/procesos.php',true); objReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); accion = 2; var param = 'key=Buscar'; param += '&ID='+idE; param += '&nombre='+Nombre; objReq.send(param); //alert(param); } else{ document.getElementById('DivResultado').innerHTML='Escribe un nombre de dominio'; } }
可以看到这个为带参数post请求指定地址。
带的参数为:
accion = 2; key=Buscar; ID= 214547854782423654 //这是个固定值 nombre= 域名前缀
知道所带的参数后,新建一个sv.php文件,将以下代码复制进去
<?php header('Content-Type','application/x-www-form-urlencoded'); $domain = $_GET['domain']; $tld = explode(".",$domain); $tld = $tld[0]; $data = array( "accion" => "2", "key"=>"Buscar", "ID"=>"214547854782423654", "nombre"=>"$tld", "enviar"=>"Consultar" ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://svnet.sv/accion/procesos.php"); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); $result = curl_exec($ch); //未完,下面接着讲解,下面的代码跟在这后面的 ?>
“2”,
“key”=>”Buscar”,
“ID”=>”214547854782423654”,
“nombre”=>”$tld”,
“enviar”=>”Consultar”
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, “https://svnet.sv/accion/procesos.php”);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
$result = curl_exec($ch);
//未完,下面接着讲解,下面的代码跟在这后面的
?>
例如我查询的域名是8.sv,官网首页的查询只需要输入8即可,但是我的代码里面进行了分割,所以https://www.lzhs.com/sv.php?domain=8.sv,还是以这种格式,这里就获取到了所有8前缀的sv可注册情况
代码获取的页面
注册局的页面
到这一步说白了就是:代码获取到的就是注册局没有css的页面。
然后打开F12查看源代码,你会发现没有注册的域名就是没注册,注册了的域名注册局都给了每个域名一个ID
如上图所示8.org.sv是可以注册的,点击没啥反应。
然后8.sv是已经被注册了的,点击进去后是whois的页面
先F12查看注册局是怎么查whois的
好像被水印挡住了,不过没影响,你们自己也可以手动去看,这里模糊可以看到方式为onclick=”Whois(29312)”
到这一步就是说明注册局有一个function为whois的方法,跟的参数为域名的id
老规矩F12查看该方法怎么使用的,代码如下
/// BUSCAR DOMINIOS en la base de datos
function Whois(ID) {
//alert(“Hola”);
ID = ID;
//alert(ID);
//alert(idE);
if(ID > 0){
objReq = new getRequestObject();
objReq.onreadystatechange = procesaMadre;
objReq.open(“POST”,’accion/procesos.php’,true);
objReq.setRequestHeader(‘Content-Type’,’application/x-www-form-urlencoded’);
accion = 2;
var param = ‘key=Whois’;
param += ‘&ID=’+ID;
objReq.send(param);
//alert(param);
} else{
document.getElementById(‘DivResultado’).innerHTML=’Escribe un nombre de dominio’;
}
}
可以看到这个function所需的参数,whois的id我们直接进行匹配就行了,用到php的preg_match_all函数
preg_match_all(“/$domain<\/strong>
这就把已注册的sv域名id匹配出来了。
跟着注册局提供的方法进行查询返回结果
$domainid = $domainid[1][0];
$data = array(
“key”=>”Whois”,
“ID”=>”$domainid”,
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, “https://svnet.sv/accion/procesos.php”);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
$result = curl_exec($ch);
$res = substr($result, strripos($result, ‘
echo “
“;
最终的结果如下
最后一步,判断域名是否注册
if (strpos($res,”egistrad”)) {
echo “域名已注册”;
//自定义代码,可以设置自动按时刷新页面,反复查询是否删除
}else {
echo “域名未注册”;
//自定义代码
}
到此,整个sv域名查询whois的方法就结束了。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。联系邮箱:[email protected]