8

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
4

2 に答える 2

5

ちょっとしたGroovyマジックでJavaのURLクラスを使うことができます;-)

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
于 2012-12-05T11:55:56.230 に答える
4

URL に既に 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
于 2012-12-05T14:33:45.923 に答える