要将一个服务公开给外部访问,必须开放端口,例举一些场景的端口映射:
VMware 实现宿主机端口映射到虚拟机端口:
打开 VMware 的菜单中的 编辑 - 虚拟网络编辑器,
在弹出窗口中表格中的选中“NAT”项,点击下方的“NAT设置”(若无法操作需要先点击“更改设置”允许)
在“NAT设置”中“添加”,填写主机端口和虚拟机端口、虚拟机IP地址。
这样,宿主机就能访问到虚拟机中的服务了。
在 Windows 11 的防火墙中允许端口:
在“设置”或“控制面板”中打开防火墙,“高级设置”
在“入站规则”中“新建规则”
选择“端口”并填写,完成。
这样,局域网的其它电脑就能访问到这台 Windows 的服务了。
小米路由器:
登录路由器,进入“高级设置”,
切换到“端口转发”,添加规则,
这样,外网就能通过路由器的外网IP来访问局域网中的内网服务了。
华为路由器 AX3 Pro:
登录路由器,进入“更多功能”,
展开“安全设置”,选择“NAT服务”,
点击“+”号设置端口映射。
这样,外网就能通过路由器的外网IP来访问局域网中的内网服务了。
H3C ER3200G2 路由器:
登录路由器,展开“高级设置”,“地址转换”,
切换到“虚拟服务器”,“新增”,
填端口和内部服务器IP,完成。
这样,外网就能通过路由器的外网IP来访问局域网中的内网服务了。
例子:IPAddress.Parse("27.184.49.031")
Parse 方法认为 031 是八进制数,所以最终的结果是 27.184.49.25。
例子:IPAddress.Parse("27.184.49.081")
同理,“0”开头的数会按八进制数处理,那么这个转换将抛出异常:提供了一个无效的参数。An invalid IP address was specified.
实例化方法一:DbSearcher(String dbFile, QueryType queryType, String key)
实例化方法二:DbSearcher(InputStream is, QueryType queryType, String key)
方法一通过传入文件路径来实例化,方法二通过传入文件流来实例化;
当 queryType 为 MEMORY 时,方法一和方法二只有在实例化时有性能差别,差别在于将指定路径的文件读到内存中保存;在执行 Search 方法时无性能差别,因为都是在内存中执行查找;
queryType 为 MEMORY 和 BTREE 的差别在于前者是在内存中查找,速度快但占内存,后者是在文件中查找,速度慢但省内存。
错误:Padding is invalid and cannot be removed.
原因:可能是数据库文件与密钥不一致。
unpack("C*", $data)
C 表示一个无符号的字符(unsigned char),它将被解析为一个介于 0 到 255 之间的十进制整数。
* 表示重复该指令直到数据被完全解析。
对应到 C# 中,即在 VS 中断点调试看到的 data 的值。
打开 JS 文件,查找:
o+=String.fromCharCode(t.charCodeAt(r)^i[(i[e]+i[s])%256]);
水印文字是从这个变量 o 输出来的,可以在这句的后面,“return o”的前面插入“console.log(o);”看到效果。
因为它是一行一行返回的,所以将
return o
改为下面的三目即可:
return o=='GoJS 3.0 evaluation'||o=='(c) 1998-2024 Northwoods Software'||o=='Not for distribution or production use'||o=='gojs.net'?'':o
修改方法来源于网络,仅供学习参考,请勿用于生产环境,请支持正版!