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
- ruby通过telnet读取互联网时间
- 关于通过ruby互联网同步时间的几个思路
- 用telnet测试通过pop3读取163邮箱邮件
- Ruby telnet 问题
- 通过telnet的攻击
- Ruby 读取二进制文件
- Ruby分片读取文件
- ruby读取、写入文件
- ruby 读取yaml文件
- Ruby读取二进制文件
- ruby 读取文档
- ruby用来发送互联网邮件
- java通过telnet执行命令
- Windows7通过telnet连接服务器
- java通过telnet执行命令
- 通过telnet手动输入HTTP
- 通过wireshark抓取telnet登陆密码
- telnet通过smtp发送邮件
- Android中的各种Manager
- 导出XML
- Java读取Excel文件的几种方法
- 抄来的东西BeeFramework
- 【java】输入流InputStream的reset()和mark()方法注意事项
- ruby通过telnet读取互联网时间
- 在Android项目中配置Protocol Buffer环境
- 正则表达式匹配连续多个空格或tab空格
- WIN8: 80端口被SYSTEM占用的解决方法
- 9.4.1 函数式和命令式类
- liferay的MVCPortlet的ajax请求
- SpannableString设置AndroidTextView改变颜色,文字大小,图文混排等等
- 拥抱cmder,和cmd说再见
- Linux 硬件时钟系统与系统时间的同步