我运行一个Minecraft网站,目前在使用查询协议时,它无法与SRV记录一起使用.

我只是想知道有没有办法获得SRV记录所指向的ip和端口.

E.g: mc.lunarphase.co.uk => 192.198.91.238:64759

解决方法:

最简单的方法可能是使用挖掘.你可以直接使用套接字,但这样的东西更容易(恕我直言):

function getDNS($hostname, $type='') {

$records=`dig +noall +answer $hostname $type`;

$records=explode("\n",$records);

$res_hostname='';

$port=0;

foreach ($records as $record) {

preg_match_all('/([^\s]+)\s*/',$record, $matches);

if (is_array($matches) && is_array($matches[1]) && count($matches[1]) > 3) {

switch (strtoupper($matches[1][3])) {

case 'SRV':

if (count($matches[1]) > 6) {

$port=$matches[1][6];

$res_hostname=$matches[1][7];

}

break;

case 'A':

case 'CNAME':

if (count($matches[1]) > 3) {

$res_hostname=$matches[1][4];

}

break;

}

if (!empty($res_hostname) && substr($res_hostname, -1) == '.') break; // if it's a cname, we've probably already got the ip, so keep going just in case (but we might not so don't count on it!)

}

}

if (substr($res_hostname, -1) == '.') { // we have more resolving to do

$res_hostname=getDNS(trim($res_hostname, '. '));

}

if (empty($res_hostname)) die('Failed to lookup IP for ' . (!empty($type) ? '(' . $type .' record) ' : '' ) . $hostname . PHP_EOL);

if (empty($port)) return $res_hostname;

return $res_hostname . ':' . $port;

}

$hostIPPair=getDNS('example.com', 'srv');

标签:minecraft,php,dns,srv

来源: https://codeday.me/bug/20190825/1720997.html

php查询当日记录,PHP查询SRV记录相关推荐

  1. SRV记录用来标识某台服务器使用了某个服务,常见于微软系统的目录管理——深入的话需要去折腾Azure Active Directory...

    SRV记录 SRV记录 什么情况下会用到SRV记录? [SRV记录用来标识某台服务器使用了某个服务,常见于微软系统的目录管理] SRV记录的添加方式 A.主机记录处格式为:服务的名字.协议的类型 例如 ...

  2. bind添加SRV记录说明

    搜了一堆资料,整理下在bind添加SRV记录的方法和自己添加的记录实例: SRV(Service record),描述数据的规范域名系统限定的位置,即,主机名和端口号,对于指定的服务的服务器.它在 R ...

  3. 使用nslookup验证DNS的SRV记录

    DNS集成区域安装完成后,需要确认Active Directory安装运行是否正常.在安装过程中一项最重要的工作是在DNS数据库中添加服务记录(SRV记录).SRV记录是一个域名系统(DNS)资源记录 ...

  4. 用命令查询邮件服务器ip地址,如何利用nslookup命令查询mx记录?以及邮件相关记录...

    Nslookup 是一个监测网络中DNS服务器是否能正确实现域名解析的命令行工具.它在 Windows NT/2000/XP 中均可使用. 本文主要是针对邮箱的mx记录以及相关的查询方法做一些参考: ...

  5. mysql 限定查询_MySQL Limit 限定查询记录数

    MySQL Limit 限定查询记录数 MySQL LIMIT MySQL 中 LIMIT 关键字用于限定查询记录返回最大数目. 语法: ... LIMIT offset , rows 该语法中,of ...

  6. mysql查询去重第一条_Mysql用法记录 - Ashley-OSCHINA的个人空间 - OSCHINA - 中文开源技术交流社区...

    1.查询某个字段,在数据库不重复的条数(去重查询) select count(distinct item_uid) from supply_order; 查询 表 supply_order 中 ite ...

  7. Sql 查询当天、本周、本月记录

    --查询当天: select * from info where DateDiff(dd,datetime,getdate())=0 --查询24小时内的: select * from info wh ...

  8. Database之SQLSever:SQL命令实现查询之多表查询、嵌套查询、分页复杂查询,删除表内重复记录数据、连接(join、left join和right join简介及其区别)等案例之详细攻略

    Database之SQLSever:SQL命令实现查询之多表查询.嵌套查询.分页复杂查询,删除表内重复记录数据.连接(join.left join和right join简介及其区别)等案例之详细攻略 ...

  9. mysql联表查询多记录显示_数据库:MySQL(多表的表记录的查询)(三)

    一.外键约束 1.创建外键 ---每一个班主任会对应多个学生 , 而每个学生只能对应一个班主任----主表 CREATE TABLE ClassCharger( id TINYINT PRIMARY ...

最新文章

  1. pivot 用order by 语句排序时,老是超时的解决办法,超Easy
  2. git 在本地新建分支之后上传代码到远程
  3. 使用虚拟路径时出现404问题
  4. 博客地址 RSS地址
  5. link url下载php,php脚本生成google play url的下载链接,下载apk并自动反编译后获取android版本号...
  6. 4变形物体_Houdini基础(二)曲线变形物体
  7. Hbase的MapReduce(Hbase权威指南)+ BulkLoad导入HBase
  8. [原创]:善用佳软(三)
  9. java ME是什么意思_java me是什么?
  10. 复合梯形公式C语言程序,求运用c++来实现复合梯形公式的代码
  11. ISCC -MISC-Retrieve_the_passcode
  12. 靶机、软件搭建:05---Burp Suite工具的安装与使用(Windows环境)
  13. 【毕业设计_课程设计】在线免费小说微信小程序的设计与实现(源码+论文)
  14. Windows环境下PyTorch_geometric安装踩坑
  15. Uniapp苹果登录
  16. dlib.get_frontal_facedetector UINT8 和float格式互相转换
  17. 组网胖模式_常听到别人说胖AP和瘦AP组网,都有什么区别呢?
  18. ansys用什么cpu_学ansys软件需要什么样的电脑配置才能运行?
  19. android 炫酷的自定义轮播图,Android实现炫酷轮播图效果
  20. Java设计模式--原型模式Prototype

热门文章

  1. 3dmax提示加载插件dll出错,代码193怎么办?代码193是什么意思?
  2. Centos7下update-grub命令的用法
  3. Android自定义View来实现解析lrc歌词同步滚动、上下拖动、缩放歌词等功能
  4. Unity2D游戏入门Sunnyland制作记录:02编辑素材、Tilemap
  5. 磁盘软件 测试步骤,硬盘测试软件IOMETER安装配置指南
  6. 基于RSA盲签名的隐私集合求交PSI算法
  7. python双下划线怎么打出来_Python中单、双下划线的区别总结
  8. 一名佛系退休前端程序员的年度总结(生活记录)
  9. MSI Afterburner(微星显卡超频工具)v4.6.0 中文版
  10. 100集华为HCIE安全培训视频教材整理 | 双机热备(一)