某人想在h小时内钓到

在进行测试自动化时,通常需要知道当前计算机的名称,以提示另一台计算机连接到它,特别是在并行运行测试的情况下。 本周,我试图对服务器进行测试,以使其连接回在从属测试计算机上运行的WireMock服务器。

堆栈溢出的标准响应是使用以下模式获取网络地址。 在我的版本中,如果我们无法解析名称,则假设我们正在VPN上的开发人员便携式计算机上运行,​​因此所有测试都在同一台计算机上运行。 (因此localhost)

String hostName = "localhost";
try {InetAddress addr = InetAddress.getLocalHost();String suggestedName = addr.getCanonicalHostName();// Rough test for IP address, if IP address assume a local lookup// on VPNif (!suggestedName.matches("(\\d{1,3}\\.?){4}") && !suggestedName.contains(":")) {hostName = suggestedName;}
} catch (UnknownHostException ex) {
}System.out.println(hostName);

问题来了,我们必须信任本地计算机设置,例如/ etc / hostname,这可能导致无法从另一台计算机访问的网络名称。 为了解决这个问题,我编写了以下代码,以在可用的网络接口上工作,以找到可用于与本机对话的可远程寻址的网络地址名称。 (我可以使用IP地址,但是很难记住它们,尤其是当我们向IPv6迈进时)

String hostName = stream(wrap(NetworkInterface::getNetworkInterfaces).get())// Only alllow interfaces that are functioning.filter(wrap(NetworkInterface::isUp))// Flat map to any bound addresses.flatMap(n -> stream(n.getInetAddresses()))// Fiter out any local addresses.filter(ia -> !ia.isAnyLocalAddress() && !ia.isLinkLocalAddress() && !ia.isLoopbackAddress())// Map to a name.map(InetAddress::getCanonicalHostName)// Ignore if we just got an IP back.filter(suggestedName -> !suggestedName.matches("(\\d{1,3}\\.?){4}")&& !suggestedName.contains(":")).findFirst()// In my case default to localhost.orElse("localhost");System.out.println(hostName);

您可能会注意到那里使用了一些支持方法来整理代码,如果您感兴趣的话,这里是必需的支持方法。

@FunctionalInterface
public interface ThrowingPredicate<T, E extends Exception>{boolean test(T t) throws E;
}@FunctionalInterface
public interface ThrowingSupplier<T, E extends Exception>{T get() throws E;
}public static <T, E extends Exception> Predicate<T> wrap(ThrowingPredicate<T, E> th) {return t -> {try {return th.test(t);} catch (Exception ex) {throw new RuntimeException(ex);}};
}public static <T, E extends Exception> Supplier<T> wrap(ThrowingSupplier<T, E> th) {return () -> {try {return th.get();} catch (Exception ex) {throw new RuntimeException(ex);}};
}// http://stackoverflow.com/a/23276455
public static <T> Stream<T> stream(Enumeration<T> e) {return StreamSupport.stream(Spliterators.spliteratorUnknownSize(new Iterator<T>() {public T next() {return e.nextElement();}public boolean hasNext() {return e.hasMoreElements();}},Spliterator.ORDERED), false);
}

翻译自: https://www.javacodegeeks.com/2016/06/getting-name-someone-connect-back-server.html

某人想在h小时内钓到

某人想在h小时内钓到_为某人命名以重新连接到您的服务器相关推荐

  1. 3dmip12小时内无法注册_国内用户将无法再注册Steam新账号

    经常玩游戏的玩家肯定知道一个游戏平台,那就是Steam.它上面的游戏包罗万象,而且购买.游玩和更新等等都是很方便的,因此它也有着数量庞大的用户.对于国内玩家而言,虽然现在无法通过正常的连接打开Stea ...

  2. 为某人命名以重新连接到您的服务器

    在进行测试自动化时,通常需要知道当前计算机的名称,以提示另一台计算机连接到它,特别是在并行运行测试的情况下. 本周,我试图对服务器进行测试,以使其连接回在从属测试计算机上运行的WireMock服务器. ...

  3. 33岁想从头学做网页设计_从头开始设计字体-并在24小时内将其提交给Google字体...

    33岁想从头学做网页设计 by James Barnard 詹姆斯·巴纳德(James Barnard) 从头开始设计字体-并在24小时内将其提交给Google字体 (Designing a font ...

  4. 1000桶水,其中一桶有毒,猪喝毒水后会在15分钟内死去,想用一个小时找到这桶毒水,至少需要几头猪?具体该如何实现方法讲解

    对于此问题,一个思路是通过对问题分解: 首先一个猪在一个小时内的状态可以分为5种: 一.0分钟喝水,15分钟死去 二.15分钟活着再喝水,30分钟死去 三.30分钟活着再喝水,45分钟死去 四.45分 ...

  5. 半小时内实现Esp32-Cam模型训练和图像识别

    Esp32-Cam图像识别 一.网页显示视频流 1.Linux式例程 2.MicroPython式例程 步骤1.下载Thonny 步骤2.烧录Esp32-Cam固件 步骤3.运行相应代码 3.Ardu ...

  6. 引导分区 pbr 数据分析_如何在1小时内引导您的分析

    引导分区 pbr 数据分析 by Tim Abraham 蒂姆·亚伯拉罕(Tim Abraham) 如何在1小时内引导您的分析 (How to bootstrap your analytics in ...

  7. 6个月为50篇AI论文写摘要,网友:这有啥,我曾被要求1.5小时内复现一篇论文...

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源丨机器之心 编辑丨极市平台 导读 快速阅读论文是研究人员不可或缺 ...

  8. oracle 48小时内_恭喜詹姆斯!恭喜湖人!戴维斯续约最新动态:48小时内或达成...

    卫冕冠军湖人还未停下脚步,早些时候他们与老将杜德利完成续约,后者将在新赛季继续留在队中.随着这笔签约达成,接下来湖人的重心将放在与戴维斯的续约上面,就在刚刚不久,戴维斯续约传来了最新动态. 尽管戴维斯 ...

  9. 我如何在20小时内为AWS ML专业课程做好准备并进行破解

    I am a great fan of how Tesla is executing the problem of gathering data from the fleet of cars to t ...

最新文章

  1. 卷积神经网络的“封神之路
  2. Java多线程知识小抄集(一)
  3. Django REST framework 源码中提供的默认配置
  4. composer 中国镜像
  5. python函数的参数可以接收哪些类型的数据_python强势来袭-0015-函数中的参数-送礼开始...
  6. Linux 文件与目录管理 | 菜鸟笔记收录
  7. PETSHOP模式IDAL,SQLSERVERDAL,存储过程以及模型类代码的生成工具
  8. jquery砸金蛋 高仿阿里旅游砸金蛋
  9. Rewrite HTTP to HTTPS in Nginx
  10. 离散数学实验一 利用真值表法求取主析取范式以及主合取范式的实现
  11. 其于js的五笔输入法!
  12. 信奥中的数学:卷积、傅立叶变换
  13. 时间换算--C语言结构练习
  14. AWS​捅大篓子了,近1G敏感数据Github裸奔5小时
  15. 马尔可夫链的常返态和非常返态-零常返态
  16. 《鱿鱼游戏》我怕了,还是整点阳间的游戏吧,Python版“碰糖”来袭—你能过几关?
  17. 数据科学家处理小数据的7个技巧。
  18. win10的JDK安装环境变量配置
  19. linux查看指定目录下各个文件大小以及总体大小
  20. Spice语法及调用

热门文章

  1. P4548-[CTSC2006]歌唱王国【概率生成函数,KMP】
  2. P4126-[AHOI2009]最小割【网络流,tarjan】
  3. CF1066F-Yet another 2D Walking【贪心】
  4. P6240 好吃的题目(分治+背包)
  5. 【栈】【字符】匹配(jzoj 1612)
  6. 详解Vue中watch的高级用法
  7. LeetCode算法总结-回溯法与深度优先搜索
  8. 汇编语言(十五)之找出两个数组中的相同元素
  9. 在Swing和Swt中使用JavaFX
  10. Mybatis简介与原理