我想提取IP並將其返回。喜歡的東西從字符串獲取IP地址(Groovy)
def getIPfromString (myString) {
..
return IP
}
IP = getIPfromString("ftp://192.168.13.108/720_prev")
print " IP Address : " + IP
輸出:
IP Address : 192.168.13.108
我想提取IP並將其返回。喜歡的東西從字符串獲取IP地址(Groovy)
def getIPfromString (myString) {
..
return IP
}
IP = getIPfromString("ftp://192.168.13.108/720_prev")
print " IP Address : " + IP
輸出:
IP Address : 192.168.13.108
您可以使用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
如果該URL已經有第e IP地址然後轉換爲URL可以提取IP,但是如果域名主機名(例如, www.stackoverflow.com)在URL主機組件中找到,則需要執行解析爲地址的DNS查找。這需要在Java API中調用InetAddress.getByName()。
如果URL已經有地址,那麼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
這似乎爲'HTTP工作:'或'FTP:',但是當我嘗試使用它的'SSL:'網址獲得: '捕獲:java.net.MalformedURLException:未知協議:ssl' 我不認爲toURL()方法識別ssl協議URL。 – cognoscente