workerman通過AsyncUdpConnection給公網(wǎng)地址發(fā)送日志時,總是觸發(fā)操作系統(tǒng)底層DNS-PTR解析,有何解決辦法?
<?php
function send_udpData_log( $data , $host = "" , $port = ""){
$udp_connection = new AsyncUdpConnection("udp://{$host}:{$port}");
$udp_connection->onConnect = function($udp_connection) use($data) {
$udp_connection->send($data);
};
}
以向61.139.2.69發(fā)送udp報文進(jìn)行舉例
用例
send_udpData_log("this is log content" , "61.136.2.69" , 8000 );
通過tcpdump進(jìn)行抓包, # tcpdump -i eth0 udp
老是觸發(fā)操作系統(tǒng)底層向DNS服務(wù)器發(fā)起對公網(wǎng)IP地址的DNS-PTR解析請求
00:22:05.870697 IP linux.35570 > 183.221.253.100.domain: 55516+ PTR? 69.2.139.61.in-addr.arpa. (44)
00:22:05.878150 IP 183.221.253.100.domain > linux.35570: 55516 ServFail 0/0/0 (44)
我擔(dān)心如果我的請求數(shù)據(jù)量太大以后會被運營商處罰。
雖然我已經(jīng)暫時通過添加hosts文件得到解決
echo "61.139.2.69 69.2.139.61" >> /etc/hosts
我這種針對特定IP的場景進(jìn)行規(guī)避,如果我的IP地址是隨機的,那豈不是很難處理了
有沒有更好的解決辦法?當(dāng)我向某個IP發(fā)送UDP報文時,不再執(zhí)行DNS-PTR請求。