V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ahu  ›  全部回复第 2 页 / 共 35 页
回复总数  684
1  2  3  4  5  6  7  8  9  10 ... 35  
39 天前
回复了 hugetimors 创建的主题 程序员 搞了一年的独立开发,累了!
加油!且行且珍惜
@ibuki233 #10 感谢!
我之前搜过,竟然没搜到。可能是近期刚有的
国内用汽水是不是就可以了😌
@Puteulanus #6 不错的示范 😄

于是我照猫画虎,经过约 5 轮的对话,免费的 GPT 3.5 为我写了个能 work 的 PHP 版本:

```
<?php
// 指定域名
$targetDomain = 'somename.com';

// 响应 IP 地址
$responseIP = '1.2.4.8';

// 启动 DNS 服务器
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, '127.0.0.1', 5345);

echo "DNS 服务器已启动...\n";

while (true) {
socket_recvfrom($socket, $data, 512, 0, $from, $port);

// 解析 DNS 请求
$dnsRequest = dns_parse_message($data);

// 打印收到的 DNS 请求
echo "收到 DNS 请求:\n";
print_r($dnsRequest);

// 检查请求是否为 A 记录且为目标域名的子域名
if ($dnsRequest && isset($dnsRequest['question'][0]['qtype']) && $dnsRequest['question'][0]['qtype'] == 0 && endsWith($dnsRequest['question'][0]['qname'], ".$targetDomain")) {
// 构建响应数据
$dnsResponse = dns_build_response($dnsRequest, $responseIP);

// 打印响应数据
echo "准备发送的 DNS 响应:\n";
print_r($dnsResponse);

// 发送响应
$bytesSent = socket_sendto($socket, $dnsResponse, strlen($dnsResponse), 0, $from, $port);
if ($bytesSent === false) {
echo "发送 DNS 响应失败\n";
} else {
echo "已发送 $bytesSent 字节的 DNS 响应\n";
}

echo "已响应 DNS 请求:{$dnsRequest['question'][0]['qname']} -> $responseIP\n";
}
}

// 解析 DNS 请求
function dns_parse_message($data)
{
$dnsHeader = unpack('nid/nflags/nqdcount/nancount/nnscount/narcount', substr($data, 0, 12));
$question = [];
$offset = 12;
for ($i = 0; $i < $dnsHeader['qdcount']; $i++) {
$questionName = '';
$nameFound = false;
while (true) {
$labelLength = ord($data[$offset]);
if ($labelLength == 0) {
$offset++;
break;
}
if (($labelLength & 0xC0) == 0xC0) {
$offset += 2; // 跳过指针
break;
}
$questionName .= substr($data, $offset + 1, $labelLength) . '.';
$offset += $labelLength + 1;
}
$offset += 4;
$question[] = [
'qname' => rtrim($questionName, '.'),
'qtype' => isset(unpack('ntype', substr($data, $offset, 2))['type']) ? unpack('ntype', substr($data, $offset, 2))['type'] : '',
];
$offset += 4;
}

return [
'header' => $dnsHeader,
'question' => $question,
];
}

// 构建 DNS 响应
function dns_build_response($request, $ip)
{
$header = pack('nnnnnn', $request['header']['id'], 0x8180, 1, 1, 0, 0);
$question = '';
foreach ($request['question'] as $q) {
$question .= dns_compress_name($q['qname']) . pack('nn', 1, 1);
}
$answer = dns_compress_name($request['question'][0]['qname']) . pack('n*', 1, 1, 0, 1, 0, 4); // 响应类型为 A 记录,TTL 为 0 ,数据长度为 4
$answer .= inet_pton($ip); // 将 IP 地址转换为二进制格式

return $header . $question . $answer;
}

// 辅助函数,检查字符串结尾
function endsWith($haystack, $needle)
{
return substr($haystack, -strlen($needle)) === $needle;
}

// 辅助函数,压缩 DNS 消息中的域名
function dns_compress_name($name)
{
$parts = explode('.', $name);
$compressedName = '';
foreach ($parts as $part) {
$compressedName .= chr(strlen($part)) . $part;
}
return $compressedName . "\x00";
}
?>

```
果然我不是一个人😅
@Livid #47 现在试了下,的确 ok 了
https://cl.v2ex.pro/ 上的下载链接貌似失效了?@Livid

opensource.v2ex.pro 意外终止了连接

后来从 GitHub 下载的
82 天前
回复了 zhiboli 创建的主题 分享创造 youtube 中文配音
@zhiboli #2 配音其实跟字幕是一个性质,他们有自动字幕翻译就应该有自动配音翻译。有了这个功能,会进一步增加受众面和用户粘性,平台是受益的
82 天前
回复了 zhiboli 创建的主题 分享创造 youtube 中文配音
这个适合直接卖给 youtube 而不是卖给观众
83 天前
回复了 yechentide 创建的主题 问与答 想请教一下回国的注意事项
@isc #3 震撼那是肯定的。甭说他十几年没回国了,我 5 年没回老家,今年春节回去都被老家的变化妥妥震到了
各有利弊吧。
要论出身,百度的确比高德早。只不过高德后来居上了是真的
不过百度也没完全躺平,我手机上同时都装了。去年红灯读秒功能,百度是先出的
113 天前
回复了 ahu 创建的主题 分享发现 早上花了一两个小时看完了这篇爽文
@BadFox #1 对,看来你也看过了
114 天前
回复了 Beeium 创建的主题 摄影 请推荐一个直播用的单反相机
不如试试猛犸出的直播一体机,才几千块。
用单反直播,涉及到一系列问题,成本也不低(大概率会超出几千块)。

[最适合新手的直播相机--猛玛探镜横竖一体直播相机] https://www.bilibili.com/video/BV1gc411M77m/?share_source=copy_web&vd_source=a972babded2086cf8834774b8c249e6c
134 天前
回复了 CatCode 创建的主题 VPS 2024 年 国内大带宽廉价服务器有可选的吗?
支持精品
@tony1016 #9 点了你的 aff 链接去注册了,实名了,充值了,开始试用——结果直接端口不通😕

客服也不太给力,回复了我一句说「默认情况端口都是开放的」然后就没有下文了

好可惜
Yubikey
2023-04-25 11:26:32 +08:00
回复了 OldCarMan 创建的主题 分享发现 51 快到了,推荐一个“IT 民工”转航拍的博主
我竟然花了一上午看完了!这博主太强了!
1  2  3  4  5  6  7  8  9  10 ... 35  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2458 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 45ms · UTC 06:45 · PVG 14:45 · LAX 23:45 · JFK 02:45
Developed with CodeLauncher
♥ Do have faith in what you're doing.