我想提取IP并将其返回。像
这样的东西def getIPfromString ( myString ) {
..
return IP
}
IP = getIPfromString("ftp://192.168.13.108/720_prev")
print " IP Address : " + IP
输出:
IP Address : 192.168.13.108
答案 0 :(得分:4)
你可以使用Java的URL类和一些Groovy魔法; - )
String getAddressFromString( String url ) {
url.toURL().host
}
String ip = getAddressFromString( 'ftp://192.168.13.108/720_prev' )
println "IP Address : $ip"
(根据要求)输出:
IP Address : 192.168.13.108
答案 1 :(得分:4)
如果URL已经具有IP地址,则转换为URL可以提取IP,但如果在URL主机组件中找到域主机名(例如www.stackoverflow.com),则需要执行DNS查找解析为一个地址。这需要在Java API中调用 InetAddress.getByName()。
如果网址已有地址,那么 InetAddress.getByName()将只返回原地址。此外,如果主机名无法解析为地址,则需要解决异常处理问题。
String getAddressFromString( String url )
throws MalformedURLException, UnknownHostException
{
String host = url.toURL().host
// this would be equivalent to calling new URL(url).getHost()
return InetAddress.getByName(host).getHostAddress()
}
String ip = getAddressFromString( "http://stackoverflow.com/" )
println "IP Address : $ip"
输出:
IP Address : 69.59.197.21