本文整理汇总了Scala中java.net.Inet6Address类的典型用法代码示例。如果您正苦于以下问题:Scala Inet6Address类的具体用法?Scala Inet6Address怎么用?Scala Inet6Address使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Inet6Address类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Scala代码示例。
示例1: Subnet
//设置package包名称以及导入依赖的类
package com.github.shadowsocks.acl
import java.net.{Inet4Address, Inet6Address, InetAddress}
import com.github.shadowsocks.utils.Utils
@throws[IllegalArgumentException]
class Subnet(val address: InetAddress, val prefixSize: Int) extends Comparable[Subnet] {
if (prefixSize < 0) throw new IllegalArgumentException
address match {
case _: Inet4Address => if (prefixSize > 32) throw new IllegalArgumentException
case _: Inet6Address => if (prefixSize > 128) throw new IllegalArgumentException
}
override def toString: String = if (address match {
case _: Inet4Address => prefixSize == 32
case _: Inet6Address => prefixSize == 128
}) address.getHostAddress else address.getHostAddress + '/' + prefixSize
override def compareTo(that: Subnet): Int = {
val addrThis = address.getAddress
val addrThat = that.address.getAddress
var result = addrThis lengthCompare addrThat.length // IPv4 address goes first
if (result != 0) return result
for ((x, y) <- addrThis zip addrThat) {
result = (x & 0xFF) compare (y & 0xFF) // undo sign extension of signed byte
if (result != 0) return result
}
prefixSize compare that.prefixSize
}
}
object Subnet {
@throws[IllegalArgumentException]
def fromString(value: String): Subnet = {
val parts = value.split("/")
if (!Utils.isNumeric(parts(0))) throw new IllegalArgumentException()
val addr = InetAddress.getByName(parts(0))
parts.length match {
case 1 => new Subnet(addr, addr match {
case _: Inet4Address => 32
case _: Inet6Address => 128
})
case 2 => new Subnet(addr, parts(1).toInt)
case _ => throw new IllegalArgumentException()
}
}
}
示例2: GeoIp
//设置package包名称以及导入依赖的类
package com.bwsw.sj.examples.sflow.module.process.udf
import java.net.{Inet4Address, Inet6Address, InetAddress}
import com.bwsw.sj.common.DAL.repository.ConnectionRepository
import com.bwsw.sj.common.utils.ConfigSettingsUtils
import com.maxmind.geoip.LookupService
import org.slf4j.LoggerFactory
object GeoIp {
private val logger = LoggerFactory.getLogger(this.getClass)
private val fileStorage = ConnectionRepository.getFileStorage
private lazy val ipv4AsNumLookup = getAsLookupServiceIpv4
private lazy val ipv6AsNumLookup = getAsLookupServiceIpv6
def resolveAs(ip: String): Int = {
try {
InetAddress.getByName(ip) match {
case _: Inet4Address =>
if (ipv4AsNumLookup.getID(ip) != 0) ipv4AsNumLookup.getOrg(ip).split(" ")(0).substring(2).toInt else 0
case _: Inet6Address =>
if (ipv6AsNumLookup.getID(ip) != 0) ipv6AsNumLookup.getOrgV6(ip).split(" ")(0).substring(2).toInt else 0
}
} catch {
case _: java.net.UnknownHostException =>
throw new Exception( s"""resolveAs error: "$ip" isn't correct ip address""")
case _: com.maxmind.geoip.InvalidDatabaseException =>
logger.error( s"""resolveAs error: "$ip" com.maxmind.geoip.InvalidDatabaseException""")
0
}
}
private def getAsLookupServiceIpv4 = {
val geoIpFileName = ConfigSettingsUtils.getGeoIpAsNumFileName()
createLookupService(geoIpFileName)
}
private def getAsLookupServiceIpv6 = {
val geoIpFileName = ConfigSettingsUtils.getGeoIpAsNumv6FileName()
createLookupService(geoIpFileName)
}
private def createLookupService(filename: String) = {
val databaseFile = fileStorage.get(filename, filename)
new LookupService(databaseFile)
}
}
示例3: net
//设置package包名称以及导入依赖的类
package refined.guava.net
import java.net.{Inet4Address, Inet6Address}
import com.google.common.net.{InetAddresses, InternetDomainName, MediaType}
import eu.timepit.refined.api.Validate
import refined.guava.net.net.{DNS, IP, IPv4, IPv6, Media}
object net extends NetValidate {
case class IP()
case class IPv4()
case class IPv6()
case class DNS()
case class Media()
}
private[net] trait NetValidate {
implicit def ipValidate: Validate.Plain[String, IP] =
Validate.fromPartial(InetAddresses.forString, "IP Address", IP())
implicit def ipv4Validate: Validate.Plain[String, IPv4] =
Validate.fromPredicate(
str => InetAddresses.forString(str).isInstanceOf[Inet4Address],
str => s"$str is not an IPv4 Address",
IPv4())
implicit def ipv6Validate: Validate.Plain[String, IPv6] =
Validate.fromPredicate(
str => InetAddresses.forString(str).isInstanceOf[Inet6Address],
str => s"$str is not an IPv6 Address",
IPv6())
implicit def dnsValidate: Validate.Plain[String, DNS] =
Validate.fromPartial(InternetDomainName.from, "DNS name", DNS())
implicit def mediaValidate: Validate.Plain[String, Media] =
Validate.fromPartial(MediaType.parse, "MediaType", Media())
}
示例4: Pinger
//设置package包名称以及导入依赖的类
package net.woaf.jono.phonehome
import java.net.{ Inet6Address, InetAddress }
import scala.sys.process._ // scalastyle:ignore
class Pinger(addr: InetAddress, interface: String) extends HostStatusChecker {
private val isWindows = System.getProperty("os.name").toLowerCase().contains("win")
private val isv6 = addr match {
case a: Inet6Address => true
case _ => false
}
override def isHostAlive: Boolean =
(
if (isWindows) {
Seq("ping", "-w", "1000", "-n", "1", addr.getHostAddress)
} else if (isv6) {
Seq("ping6", if (!interface.isEmpty) s"-I$interface" else "", "-W", "1", "-n", "-c", "1", addr.getHostAddress)
} else {
Seq("ping", "-W", "1", "-n", "-c", "1", addr.getHostAddress)
}
) ! ProcessLogger(
line => {},
line => {}
) == 0
}