以IP段作为监听地址

        在写Socket通讯服务的时候一般需要Listen某个IP地址端口,但这样比较麻烦的就是部署后需要配置相关IP地址信息;虽然可以监听Any所有地址,但这种对于私有的网络服务来说并不安全。为了在发布的时候节省一些配置工作所以才想到以IP段作为监听地址来配置。

        在集群应用中都有着自己的私有网段,通过配置IP段让服务自动监听在这IP端上的端口那部署起来就相对方便一些,特别是以容器作为管理手段服务集群,这样做的好处是推送一份新的实例时服务无须再配置即可确保运行在对应IP段的地址上。

        BeetleX的新版本中支持这种监听配置方式,可以在IP地址的最后一位配置为*,这样就会监听本机匹配对应网段的IP地址(不过暂只支持IPv4)。以下是内部实现代码:

System.Net.IPAddress address;
if (string.IsNullOrEmpty(Host))
{if (Socket.OSSupportsIPv6 && Server.Options.UseIPv6){address = IPAddress.IPv6Any;}else{address = IPAddress.Any;}
}
else
{if (Host.EndsWith("*")){address = MatchIPAddress(Host.Replace("*", ""));Host = address.ToString();}else{address = System.Net.IPAddress.Parse(Host);}
}
private IPAddress MatchIPAddress(string matchIP)
{var host = Dns.GetHostEntry(Dns.GetHostName());foreach (var ip in host.AddressList){if (ip.AddressFamily == AddressFamily.InterNetwork){if (ip.ToString().IndexOf(matchIP) == 0){return ip;}}}throw new Exception($"No {matchIP} IPv4 address in the system!");
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/303306.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

支付宝 统一支付 php,支付宝APP支付 统一下单 php服务端 tp5

{$data input(‘post.‘);Loader::import(‘/alipay/aop/AopClient‘,EXTEND_PATH);$aop new \AopClient();$aop->appId config("alipay_app_id");$aop->rsaPrivateKey config(‘alipay_private_key‘);$aop->alipayrsaPublicKey config(‘alipay_publ…

近期资料分享汇总,还不快来看看你漏了哪份没拿?

相信,一直关注着我们的同学们都知道,小思妹分享了好多好多的资料给大家。为了方便新来的同学自取,小思妹又重新整理了一遍,直接点以下标题即可跳转!这是我见过的最全的训练数据集,没有之一!送你…

WebView 访问 url asset sd 网页

引用:http://www.oschina.net/code/snippet_54100_6227 [代码] [Java]代码 01//打开本包内asset目录下的index.html文件02 03wView.loadUrl(" file:///android_asset/index.html "); 04 05//打开本地sd卡内的index.html文件06 07wView.loadUrl("con…

oracle天数加个随机数,如何给一个表某列加上指定的随机数

如何给一个表某列加上指定的随机数一、原始数据create table #test (name varchar(10),ddate datetime,date1 datetime,date2 datetime)insert into #testselect 张三,2013-09-01,2013-09-01 09:00:00.000,2013-09-01 17:00:00.000 union allselect 张三,2013-09-02,2013-09-0…

MS Learn 宝藏资源库 - 学习经验分享

点击蓝字关注我们作者:刘轶民大家好,我是东北电力大学的一名在校学生,我叫刘轶民,很高兴能以 MS Learn 的受益者的身份,来分享一些经验与看法。作为正在上学的我来讲,很多时候我可能更多的去面临着新技术的…

你必须知道的28个HTML5特征、窍门和技术

Jeffrey Way曾发表过一篇博文《28 HTML5 Features, Tips, and Techniques you Must Know 》讲述了28个HTML5特征、窍门和技术,张鑫旭将本文进行了翻译,现转载于此,全文如下:前端的发展如此之迅猛,一不留神,…

一起读懂传说中的经典:受限玻尔兹曼机

尽管性能没有流行的生成模型好,但受限玻尔兹曼机还是很多读者都希望了解的内容。这不仅是因为深度学习的复兴很大程度上是以它为前锋,同时它那种逐层训练与重构的思想也非常有意思。本文介绍了什么是受限玻尔兹曼机,以及它的基本原理&#xf…

NET问答: 发布 asp.net core 时如何修改 ASPNETCORE_ENVIRONMENT 环境变量?

咨询区 Dario:当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT Production。请问如何动态修改 ASPNETCORE_ENVIRONMENT 的值,这样的话在 调试 和 发布 阶段…

oracle 如何筛选重复,求sql--筛选A字段相同,B字段不同且不重复的记录

测试数据:create table PRICE(ID VARCHAR2(10),PRICE NUMBER,SYSID VARCHAR2(10));insert into price (ID, PRICE, SYSID)values (10, 1000, 1);insert into price (ID, PRICE, SYSID)values (10, 1000, 2);insert into price (ID, PRICE, SYSID)values (20, 200…

注释里的诅咒:哪种语言遭受最多的咒骂?

导读:原文作者Scott Gilbertson在webmonkey.com发表一篇《Cussing in Commits: Which Programming Language Inspires the Most Swearing?》,由外刊IT评论整理翻译《注释里的诅咒:哪种语言遭受最多的咒骂?》。内容如下:任何一个程…

php tp3 操作绑定到类,操作绑定到类 · ThinkPHP3.2.3完全开发手册 · 看云

## 定义ThinkPHP3.2版本提供了把每个操作方法定位到一个类的功能,可以让你的开发工作更细化,可以设置参数**ACTION_BIND_CLASS**,例如:~~~ACTION_BIND_CLASS > True,~~~设置后,我们的控制器定义有所改变&#xff0c…

怎样快速掌握深度学习TensorFlow框架?

TensorFlow是Google基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow实际上就是张量从流…

牛X,.NET6又双叒叕新版本,这是要起飞吗?

.NET6又双叒叕出新版本了,2月17号Preview1、3月11号Preview2、4月8号又Preview3了,密集的版本发布,各种新技术和改进优化,不禁要问一句,.NET6是要起飞吗?下面给大家科普下.NET6将带来的几大核心变化&#x…

外媒:谷歌攻击码由中国作者发布

英国金融时报(The Financial Times)报导,一名中国的自由安全顾问,撰写了利用IE6浏览器的攻击代码,而后被用来攻击谷歌等美国公司。 根据金融时报的报导,这名身份尚未曝光的程序设计师,将部分攻击…

用python挖一挖知乎上宅男们最喜欢的1000个妹子

在文章开始前,先来一张图给大家热热身。这里是宅男们最喜欢的妹子中排名前200位的头像(实际193张图,部分不规则的图已被二胖过滤)。排名不分先后哈!快来看看有没有你们熟悉的面孔。找到眼熟的人了吗?说不定…

在 .NET 6 Preview 3 ASP.NET Core 更新

.NET 6 Preview 3现在可用了,其中包括对ASP.NET Core的许多重大改进。这是此预览版本中的新增功能:更小的SignalR,Blazor Server和MessagePack scripts启用 Redis 分析会话HTTP/3 endpoint TLS配置初版的 .NET Hot Reload 支持Razor编译器不再…

matlab求滤波器的冲激响应,在TMS320C5410上用MATLAB实现有限冲激响应滤波器

在TMS320C5410上用MATLAB实现有限冲激响应滤波器许辉;许红【期刊名称】《计算机应用与软件》【年(卷),期】2003(020)007【摘要】介绍在TMS320C5410上尝试MATLAB语言编程实现FIR数字滤波器的方案,阐明其开发基本原理,并给出了具体程序实例.【总页数】3页(41-42,79)【关键词】数字…

单点登录在项目中的实现 转.

最近在做一个登录功能,纠结了好几天,一直在找一个能优雅的实现单点登录的功能。博客园有看到某人写了又臭又长的八股文式的文章,没看到有价值的东西。 其实单点登录最终要解决的是多个不同域名间共享cookie的问题。但是要在不同域名间共享coo…

趣图:程序员桌面对比,iOS vs 安卓

程序员桌面对比,iOS vs 安卓↓↓↓数据与算法之美用数据解决不可能长按扫码关注

如何在 ASP.Net Core 中使用 HTTP.sys WebServer ?

ASP.Net Core 是一个开源的,跨平台的,轻量级模块化框架,可用它来构建高性能的Web程序,大家都知道 Kestrel 是 ASP.Net Core 内置的跨平台web服务器,但是它有一定的局限性,比如不支持 端口共享 , WebSockets…