ruby通过telnet读取互联网时间

来源:互联网 发布:系统内置软件卸载 编辑:程序博客网 时间:2024/06/05 15:03

    在前面的博文ntp服务器也谈逆向工程中,本猫曾经武断的认为telnet是无法连接到ntp服务器的.因为当时是这样连接的:

telnet time.nist.gov 123,端口号123是在/etc/services服务表里查询到的ntp的服务端口:

ntp             123/tcp
ntp             123/udp                         # Network Time Protocol

可是time.nist.gov开放的端口不是123,而是37,从服务表里可以看到该服务名称为time:

time            37/tcp          timserver
time            37/udp          timserver

咋回事呢?不知道啊!time.nist.gov压根不是ntp服务器吗?可能123是ntp的协议端口而不是实际可连接的端口.下面上ruby的telnet读取互联网时间的代码:

#!/usr/bin/rubyrequire 'net/telnet'time_svr = "time.nist.gov"#tn = Net::Telnet.new(Host:time_svr,Port:"time",Timeout:60,Telnetmode:false)tn = Net::Telnet.new("Host"=>time_svr,"Port"=>"time","Timeout"=>60,"Telnetmode"=>false)msg = tn.sock.recv(4).unpack('N')[0]remote = Time.at(msg - 2208988800).strftime("%H:%M:%S")puts remote

执行结果如下:

wisy@wisy-ThinkPad-X61:~/src/ruby_src$ ./telnet.rb
11:45:17

老的代码是直接tn.recv,但现在recv放在了tn.sock里.msg是返回的4个大尾字节,减去1970-01-01 0:0:0的秒数,即得当前时间相对的秒数.

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 公司收到假发票入账了怎么办 手表皮带有汗味怎么办 利客来购物卡丢了怎么办 乐天玛特倒闭卡怎么办 lv皮带买长了怎么办 密袋鼠咬了人怎么办 lv皮带如果长了怎么办 天赐农场公众号进不去了怎么办 苹果删了订阅号怎么办 蚂蚁借呗没有自动扣款怎么办 有对方qq号名字怎么办 腾讯模拟器刺激现场注册上限怎么办 丹阳智慧人社登入密码忘了怎么办? ipad系统被锁了怎么办 电脑管理员账号删了怎么办 自己电脑删文件需要管理员怎么办 苹果电脑管理员密码忘记了怎么办 电脑提示安全设置不允许下载怎么办 微信和ipad同步怎么办 苹果6空间已满怎么办 苹果6内存虚满怎么办 监控主机密码忘了怎么办 加购物车不下单怎么办 绑定qq账号消息不见了怎么办 现在的注册微信怎么办 爱奇艺手机号码被别人绑定了怎么办 手机号码换了支付宝账号怎么办 qq换手机号了怎么办呢 公司被注销了公众号怎么办 qq号被限制查找怎么办 qq号别人查找不到怎么办 qq邮箱已被注册怎么办 微信付款没网络怎么办 天猫买的假货店铺关门了怎么办 鞋小了半码怎么办 迅雷会员种子不能加速怎么办 迅雷会员为什么不能加速怎么办 持有st创智股票怎么办 租的房子床坏了怎么办 宜家定时器不响怎么办 新插座插不进去怎么办