我有一个包含4字节网络顺序IPv4地址的变量(这是使用pack和整数表示创建的).我有另一个变量,也是一个4字节的网络顺序子网.我正在尝试将它们添加到一起并添加一个以获取子网中的第一个IP.
要获得ASCII表示,我可以inet_ntoa($ip&$netmask)
获取基址,但这是一个错误inet_ntoa((($ip&$netmask)+1)
; 我得到一条消息:
Argument "\n\r&\0" isn't numeric in addition (+) at test.pm line 95.
Run Code Online (Sandbox Code Playgroud)
所以发生了什么,我能说的最好的是,它正在查看4个字节,并看到4个字节不代表数字字符串,然后拒绝添加1.
放置它的另一种方法:我想要它做的是将最低有效字节加1,我知道是第4个字节?也就是说,我想取字符串\n\r&\0
并最终得到字符串\n\r&\1
.这样做最简单的方法是什么?
有没有办法做到这一点,而无需解压缩和重新包装变量?
简而言之:我正在试图弄清楚我是否应该告诉朋友的雇主的邮件管理员他们的邮件配置是否应该修复,或者我是否应该修改我自己的政策以使我接受的更自由,或者两者都不.
一位朋友抱怨无法在我的邮件服务器上找到任何东西.我挖了它,似乎他连接到我的邮件服务器提供的主机名在*.local空间的某个地方,这意味着它不是全局可解析的.
他们被拒绝,"Helo命令被拒绝:主机未被发现;" 通过我的postfix邮件服务器.我可能对后缀中的UCE检查严格,所以我将他们(在我看来,配置错误)服务器列入白名单,但现在我想弄清楚他们实际上在多大程度上错误配置,而不是我是否过于苛刻在我接受的.
然后我检查了RFC - RFC 821说"HELO接收器可以验证HELO参数确实对应于发送方的IP地址.但是,即使发送方的HELO命令验证失败,接收方也不能拒绝接受消息".这告诉我,我实际上是违反RFC的人.
RFC 821的这部分是否已被未来的RFC取代,我可以指出?或者邮件服务器必须接受伪造的HELO邮件吗?是否有任何受到尊重的权威机构我可以指出HELO主机名应该有效,作为联系其邮件管理员的参考?