当前位置: 首页 > news >正文

如何使用程序查询域名whois信息?(带PHP/C#示例)

直接使用TCP协议向WHOIS服务器的43端口发送查询请求即可返回WHOIS信息。
一些国际域名(.COM/.NET/.CC等)需要继续向各注册商的WHOIS服务服务发送查询请求来获取详细信息。
大部分New gTLD来说,服务器是“whois.nic.[后缀]”,例如.red的WHOIS服务器为whois.nic.red

WHOIS服务器列表:https://whereiswhois.com/

PHP示例

$domain = 'baidu.com';$fs = fsockopen('whois.verisign-grs.com', 43, $errno, $errstr);
if(!$fs){write_line(sprintf('%s: %s', $errno, $errstr));return;
}try
{fwrite($fs, $domain . "\r\n");$whois = file_read_all_bytes($fs);write_line($whois);
}
catch(\Exception $ex)
{write_line($ex->getMessage());
}
finally{fclose($fs);
}function file_read_all_bytes($fs){$response = '';while(!feof($fs)){$response .= fread($fs, 4096);}return $response;
}function write_line($message) : void {echo $message . "\r\n";
}

c#示例

string domain = "baidu.com";Socket client = new(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);try
{client.Connect("whois.verisign-grs.com", 43);byte[] request = Encoding.ASCII.GetBytes(domain + "\r\n");using NetworkStream stream = new NetworkStream(client, true);stream.Write(request, 0, request.Length);using MemoryStream output = new();stream.CopyTo(output);byte[] response = output.ToArray();Console.WriteLine(Encoding.UTF8.GetString(response));
}
catch (Exception e)
{Console.WriteLine(e.ToString());
}

在这里插入图片描述


http://www.mrgr.cn/news/79993.html

相关文章:

  • all/any函数可以对“条件”打包(Python)
  • 解决VSCode无法识别相对路径的问题
  • 使用 mkcert 工具自签发 https 证书并进行本地受信
  • es 3期 第15节-词项查询与跨度查询实战运用
  • chattts生成的音频与字幕修改完善,每段字幕对应不同颜色的视频,准备下一步插入视频。
  • ArcGIS MultiPatch数据转换Obj数据
  • 优秀前端文章笔记----持续更新(20241211-至今)
  • YashanDB 23.2 YAC 共享集群部署和使用自带YMP迁移工具进行数据迁移,效果很city
  • 麒麟系统+达梦数据库+MybatisPlus+Redis+SpringBoot
  • 使用Windbg排查C++软件安装包安装时被安全软件拦截导致安装堵塞(线程卡住)的问题
  • 360极速浏览器不支持看PDF
  • MinerU:PDF文档提取工具
  • 在CentOS中安装和卸载mysql
  • centos部署SkyWalking以及在springcloud项目中搭配loki使用
  • 【优选算法 模拟】模拟算法入门详解 : 模拟算法小专题
  • Gitlab ci/cd
  • Maven插件打包发布远程Docker镜像
  • strace,tcmalloc,asan使用
  • jmeter CLI Mode 传参实现动态设置用户数
  • 腾讯微信Android面试题及参考答案(多张原理图)