检查主机名的URL

时间:2012-03-25 22:19:02

标签: ruby regex rubygems

我正在尝试评估用户提交的网址,以确定它们是否包含有效的主机名(格式化),如果是,请提取主机名。知道任何可以帮助的库/方法吗?

示例:

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 个答案:

答案 0 :(得分: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?