2012-03-25 58 views
0

我想要评估用户提交的URL以确定它们是否包含有效的主机名(格式),如果是,请提取主机名。了解任何可以提供帮助的图书馆/方法?检查主机名的URL

例子:

user_input = "www.google.com" 

if user_input.has_valid_host? 
    hostname = user_input.get_hostname #=> "google.com" 
    url = "http://" + @hostname #=> "http://google.com" 
else 
    puts "Invalid URL" 
end 

这个例子很简单,但我需要的URL对所有有效域扩展检查,并从任何字符串提取的主机名(假设它是存在)

回答

1

我不知道红宝石,但我不会认为这是一个宝贵的问题。

我会使用正则表达式来按照您的建议拆分主机名。

然后我会做一个系统调用nslookup例程。

在命令提示符处的Windows系统上,它是nslookup。

C:\Users\xyz>nslookup www.google.com 
Server: UnKnown 
Address: 192.168.237.2 

Name: www.l.google.com 
Address: 173.194.73.99 
Aliases: www.google.com.localdomain 

从Ruby中,你应该做的API调用,而不是使用命令行的,但两者最终将接口到本地机器上的DNS服务。

参见:Is there a good DNS server library in ruby?

+0

感谢,如果我花了一些时间将其整合到我运行的小型Web应用程序,但我决定吃什么净dns'宝石可能会合作,以“哑下”的问题,用“可寻址”的宝石来解决问题 – Dru 2012-03-25 23:42:14