我想提取IP并将其返回.就像是
def getIPfromString ( myString ) {
..
return IP
}
IP = getIPfromString("ftp://192.168.13.108/720_prev")
print " IP Address : " + IP
Run Code Online (Sandbox Code Playgroud)
输出:
IP Address : 192.168.13.108
Run Code Online (Sandbox Code Playgroud)
您可以使用带有一点 Groovy 魔法的 Java 的 URL 类;-)
String getAddressFromString( String url ) {
url.toURL().host
}
String ip = getAddressFromString( 'ftp://192.168.13.108/720_prev' )
println "IP Address : $ip"
Run Code Online (Sandbox Code Playgroud)
其中(根据要求)输出:
IP Address : 192.168.13.108
Run Code Online (Sandbox Code Playgroud)
如果 URL 已经有 IP 地址,则转换为 URL 可以提取 IP,但如果在 URL 主机组件中找到域名主机名(例如 www.stackoverflow.com),则需要执行 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"
Run Code Online (Sandbox Code Playgroud)
输出:
IP Address : 69.59.197.21
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2998 次 |
| 最近记录: |