发布于Internet分类中的文章

Jun 03

1478 for PPPoA/VC-MUX

1470 for PPPoA/LLC

1446 for PPPoE over ATM/LLC
Tags: ,

Aug 12

iptables -N dnsfilter -t mangle
iptables -t mangle -I dnsfilter -p udp -m udp -m u32 --u32 "0&0x0F000000=0x05000000 && 22&0xFFFF@16=0x042442b2,0x0807c62d,0x253d369e,0x2e52ae44,0x3b1803ad,0x402158a1,0x4021632f,0x4042a3fb,0x4168cafc,0x41a0db71" -j DROP
iptables -t mangle -I dnsfilter -p udp -m udp -m u32 --u32 "0&0x0F000000=0x05000000 && 22&0xFFFF@16=0x422dfced,0x480ecd63,0x480ecd68,0x4e10310f,0x5d2e0859,0x80797e8b,0x9f6a794b,0xa9840d67,0xc043c606,0xca6a0102" -j DROP
iptables -t mangle -I dnsfilter -p udp -m udp -m u32 --u32 "0&0x0F000000=0x05000000 && 22&0xFFFF@16=0xcab50755,0xcb620741,0xcba1e6ab,0xcf0c5862,0xd0381f2b,0xd1244921,0xd1913632,0xd1dc1eae,0xd35e4293,0xd5a9fb23" -j DROP
iptables -t mangle -I dnsfilter -p udp -m udp -m u32 --u32 "0&0x0F000000=0x05000000 && 22&0xFFFF@16=0xd8ddbcb6,0xd8eab30d,0xf3b9bb27,0x4a7d7f66,0x4a7d9b66,0x4a7d2771,0x4a7d2766,0xd155e58a" -j DROP
iptables -t mangle -I PREROUTING -m udp -p udp --sport 53 -j dnsfilter

适用于基于 Linux 系统的路由器,Tomato,DD-WRT,OpenWRT 等,把脚本丢到路由器启动脚本里面即可。 :evil:


Aug 09

家中或者公司使用了 Tomato 或者 DD-WRT 固件路由器的同学可能想分享他们的“私密” Hosts 文件,但是又不方便拷贝到每台机器,那么把这个 Hosts 文件内容放到路由器上是最方便的,不过 DNSMasq 的 Hosts 文件与 Windows 的 Hosts 文件格式不同,需要做一个转换,于是有了下面这个 HTML 文件,其实就是一个简单的 Javascript 转换。复制所有内容,存为任意命名的 HTML 文件,用浏览器打开,然后点击转换按钮,把转换后的数据贴到路由器 DNS 设置界面就行了。


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Hosts2DNSMasq</title>
<script type="text/javascript">
//类似 PHP 中的 trim
    function trim(str) {
        var str = str.replace(/^\s\s*/, ''),
            ws = /\s/,
            i = str.length;
        while (ws.test(str.charAt(--i)));
        return str.slice(0, i + 1);
    }
//转换 Hosts 文件格式到 DNSMasq 的格式
    function htol(el) {
        var i;
        var localz = new Array();
        var hosts = document.getElementById(el).value;
        var localzs='';
        hostdomain = hosts.split("\n");
        for (i=0;i<hostdomain.length;i++) {
            if (trim(hostdomain[i]) != '') {
                localz[i] = hostdomain[i].split("\t");
                if (localz[i][1] != undefined && localz[i][0].indexOf("#") == -1) {
                    localzs += 'address=/'+localz[i][1]+'/'+localz[i][0]+'\n';
                } else {
                    localzs += hostdomain[i]+'\n';
                }
            }
        }
        document.getElementById(el).value = localzs;
    }
</script>
</head>
<body>
    <div style="width:1024px; margin:0 auto;">
            <h2>HOSTS</h2>
            <div style="margin: 5px auto; display: block;">
            <button type="button" id="hosttolocal" onclick="htol('hostsMap');">ConventerToDNSMASQ</button>
            </div>
            <textarea id="hostsMap" onclick="this.focus();this.select()" style="width:98%;height:550px;margin:0;padding:3px;display:block;"></textarea>
    </div>
</body>
</html>

例如以下的 Hosts 数据:


203.208.45.200	base0.googlehosted.com
203.208.45.200	base1.googlehosted.com
203.208.45.200	base2.googlehosted.com
203.208.45.200	base3.googlehosted.com
203.208.45.200	base4.googlehosted.com
203.208.45.200	base5.googlehosted.com
203.208.45.200	bks0.books.google.com
203.208.45.200	bks1.books.google.com

会被转换成:


address=/base0.googlehosted.com/203.208.45.200
address=/base1.googlehosted.com/203.208.45.200
address=/base2.googlehosted.com/203.208.45.200
address=/base3.googlehosted.com/203.208.45.200
address=/base4.googlehosted.com/203.208.45.200
address=/base5.googlehosted.com/203.208.45.200
address=/bks0.books.google.com/203.208.45.200
address=/bks1.books.google.com/203.208.45.200

注意,只是做了简单的格式转换,没有利用 DNSMasq 的(泛域名)特性优化。 :shock:


Dec 04

LiteServe 是一款强大的综合服务器,小小一个软件同时支持充当 Web,FTP,Mail,Telnet 服务器,而且通过 ISAPI 扩展,它的 Web 服务器还可以支持 PHP,MySQL,Perl 等主流的动态编程语言,配搭上内置的动态的域名更新支持,专业的 FTP 支持以及电子邮件,终端操作,LiteServe 简直就是一个虚拟服务器提供商嘛~

Serva 看起来更加强大,1M 左右(32 位的只有 700 多 K)的大小,居然同时支持充当 HTTP,FTP,TFTP,DHCP, proxyDHCP, DNS, SNTP, SYSLOG 服务器!还可以作为 TFTP 客户端使用~!

Serva 是用 C/C++ 编写的多线程程序,可以很好的工作在 Windows 2000 - Windows 7 下,不需要管理员权限,不需要安装,不写注册表。



Oct 23

这个脚本功能很简单,如果你有境外 PHP 主机空间,利用这个脚本可以查询到被 DNS 污染的一些站点的真实 IP 。缓存的结果可以直接拷贝到系统 Hosts 文件中使用,也可以转换为 Unbound 的 localzone 格式供 Unbound 调用。hosts.txt 中包含需要查询的站点主机名,一行一个,ipcache.txt 则为查询结果缓存文件,标准的 Windows 系统 Hosts 文件格式。

可以到本站: gethosts 页面体验效果。


<?php
/**
 * gethosts
 *
 * @link       https://www.quakemachinex.com/gethosts/
 * @copyright  Copyright (c) 2011 AvP
 * @license    MIT Style License
 * @version    1.0
 */

$hostsLock = true; //用户提交的查询数据是否写入 hosts.txt,默认:不写入

$isPost = false;

if (isset($_POST['hosts'])){
    $hosts_txt = $_POST['hosts'];
    $isPost = true;
	if (!$hostsLock) file_put_contents('hosts.txt',$hosts_txt);
} else {
	$hosts_txt = file_get_contents('hosts.txt');
}
$hosts_array = preg_split('/[\s,]+/', $hosts_txt, -1, PREG_SPLIT_NO_EMPTY);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>gethosts</title>
<script src="ZeroClipboard.js" type="text/javascript"></script>
<script type="text/javascript">
//类似 PHP 中的 trim
    function trim(str) {
        var str = str.replace(/^\s\s*/, ''),
            ws = /\s/,
            i = str.length;
        while (ws.test(str.charAt(--i)));
        return str.slice(0, i + 1);
    }
//基于 ZeroClipboard 的跨浏览器复制到剪贴板
    function ctoc() {
        var txt = document.getElementById('hostsMap').value;

        if (window.clipboardData) {
            window.clipboardData.setData("text", txt);
            alert("Copied text to clipboard:\n" + txt);
        } else {
            var clip = new ZeroClipboard.Client();
            clip.glue('clickme');
            clip.setText(txt);
            clip.addEventListener('complete', function(client, text) {
                alert("Copied text to clipboard:\n" + text);
            });
            }
    }
//转换 Hosts 文件格式到 Unbound 的 localzone 格式
    function htol() {
        var i;
        var localz = new Array();
        var hosts = document.getElementById('hostsMap').value;
        var localzs='';
        hostdomain = hosts.split("\n");
        for (i=0;i<hostdomain.length;i++) {
            if (trim(hostdomain[i]) != '') {
                localz[i] = hostdomain[i].split("\t");
                localzs += 'local-data: "'+localz[i][1]+' A '+localz[i][0]+'"\n';
            }
        }
        document.getElementById('hostsMap').value = localzs;
    }
</script>
</head>
<body>
<?php
//判定字符串是否是 IP 地址
function IsIPAdress($value){

    if (preg_match('/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/', $value)){
        return true;
    }
    return false;
}
//获取真实 IP,并且缓存,用户提交数据不缓存
function getRealIP(){
    global $hosts_array, $isPost;
    if($isPost) {
        foreach($hosts_array as $hostname){
            $ip = gethostbyname($hostname);
            if (IsIPAdress($ip)) {
                $i = $i + 1;
                echo "$ip\t$hostname";
                echo "\n";
                if ($i > 25) return;
            }
        }
    } else {
        $cache_days = 1; //缓存多少天
        $fz = filesize('ipcache.txt');
        $ipcache_create_time = filectime('ipcache.txt');
        $time_now = date("Y-m-d H:i:s");
        $ipcache_stay_days = (strtotime($time_now)-strtotime(date("Y-m-d H:i:s",$ipcache_create_time)))/86400;
        $ipcache_stay_days = floor($ipcache_stay_days);

        if ($fz && $fz != 0 && $ipcache_stay_days < $cache_days) {
            $ipcache = file_get_contents('ipcache.txt');
            echo $ipcache;
         } else {
            foreach($hosts_array as $hostname){
                $ip = gethostbyname($hostname);
                if (IsIPAdress($ip)) {
                    $ipcacheall .= "$ip\t$hostname\n";
                }
            }
            $local_ipcache = 'ipcache.txt';
            $local_ipcache_actual = fopen($local_ipcache, 'w+');
            fwrite($local_ipcache_actual, $ipcacheall);
            fclose($local_ipcache_actual);
            $ipcache = file_get_contents('ipcache.txt');
            echo $ipcache;
         }
     }
}
?>
    <div style="width:1024px; margin:0 auto;">
        <div style="float:left;margin:0 10px;">
            <h2>Blocked Hostnames</h2>
            <form method="post">
                <button type="submit" style="margin: 5px auto; display: block;">Get Hosts</button>
                <textarea name="hosts" style="width:400px;height:550px;margin:0;padding:3px;display:block;"><?php echo $hosts_txt;?></textarea>
            </form>
        </div>
        <div style="float:left;margin:0 10px;">
            <h2>hosts</h2>
            <div style="margin: 5px auto; display: block;">
            <button type="button" id="clickme" onclick="ctoc();">CopyToClipboard(Click Twice!)</button>
            <button type="button" id="hosttolocal" onclick="htol();">ConventerToLocalzone</button>
            </div>
            <textarea id="hostsMap" onclick="this.focus();this.select()"style="width:500px;height:550px;margin:0;padding:3px;display:block;"><?php getRealIP(); ?></textarea>
        </div>
    </div>
</body>
</html>

ZeroClipboard 可到官方下载。 :!:


Apr 24

我的 QQ 能聊天,但是什么网页都打不开了,怎么办?!。。。。。。噢 No,我重新登录 QQ 居然都上不去了!

出现这种情况,一般都是 DNS 出问题,今天介绍几款 DNS 测试软件,可以方便的解决这个问题,当然,不限于此。

Fast DNS

首先出场的是 彗星 DNS 优化器。这个软件内置了大量的 DNS 服务器地址,几乎囊括了国内各省市的主要 DNS 服务器地址和国外一些著名的 DNS 服务器地址例如 Google,OpenDNS 等。软件的使用非常简单,启动后使用测试一键优化,软件会测试所有的 DNS 服务器地址速度以及解析质量,最后把软件认为最好的 DNS 服务器自动设置给你的网卡。之后你只需要在运行框中输入 ipconfig /release ,然后再输入 ipconfig /renew 即可让新的 DNS 服务器生效。强烈建议新手用户和走南闯北的售后服务人员,使用这个软件来解决 DNS 相关故障。

DNS Jumper

第二个是 DNS Jumper 。这个软件也内置了一些 DNS 服务器地址,但是大多是国外的,好在可以通过编辑 ini 文件来添加国内的 DNS 服务器地址。它可以通过点击 Fastest DNS 按钮来批量测试 DNS 服务器,也可以在下拉菜单选中一组 DNS 服务器后点击下面的 check response time 来测试,之后只需点击 Apple DNS 然后 Flush DNS 即可让新的 DNS 服务器生效。

DNS Benchmark

第三个是本站曾经多次提及的 GRC's DNS Benchmark 。这款软件可以全面测试 DNS 服务器的解析速度,安全程度,专业程度较高,并不建议初级用户使用。

NameBench

最后一个是 NameBench 。这款软件是比较纯粹的一款 DNS 服务器测速软件,DNS 服务器手动填写,但是软件可以根据自动侦测出来的用户区域来添加区域内最佳 DNS 服务器。内置 Alexa Top2000 为待测试网站地址,生成的报表非常详细,包括速度和劫持情况。测试完成后也会提醒用户哪几个 DNS 服务器最适合当前的测试机器。

你也可以去 dnsentropy 在线测试你当前使用的 DNS 服务器状态。

附件包括了本文介绍的所有软件,均为免安装版本。


Sep 24

Internet Download Manager 一文中与“蜃”同学聊起过 IDM 的抓取能力问题,蜃同学把 filebeam 这个网站抛给了我。

开始我用 GoSurf (一个 IE 内核浏览器)直接测试,结果在输入验证码以后 IDM 没有任何反应,IE 的标准另存为对话框却出来了,说明 IDM 的确没有抓取到这个点击动作。当时我就在留言中回复了这个结果。

之后我开始其它的尝试,没有换下载软件,先换了下浏览器。我直接打开 IE ,下载 filebeam 站点的文件。当输入验证码后,IDM 弹出了这个提示画面:

IDM 无法接管该下载事件

依照提示我去 IDM 设置了这个快捷键:

IDM 设置

然后重新去 IE 下载 filebeam 的文件,输入验证码后,按住 Insert 热键,点击下载按钮 ------- IDM 完美的接管了下载!

IDM 下载完成

然后我重新打开 Gosurf 下载 filebeam 的文件,IDM 同样可以接管了,看来这个快捷键的方法对 filebeam 很有效。

嘿,我感觉完全没有技术含量,所有问题的解决都来自 IDM 软件本身的提示,在这次与 filebeam.com 的对抗中,IDM 无疑是胜利的一方。

欢迎大家提供一些更为变态的站点来测试 IDM ,就算打败了 IDM ,不是还有 N 多下载软件吗?咱一个个去试 :mrgreen:

注意所有的测试并没有使用“高级浏览器集成”的功能。


Sep 20

关于 Windows XP SP2 之后的 TCP/IP 半连接数限制来源我就不多说了,有兴趣的去 Google 一下很多的。如果你在 BT 或者 eMule 或者开着迅雷的时候感觉完全没法打开网页,如果你的系统日志频繁提示:

EventID 4226: TCP/IP has reached the security limit

或者:

EventID 4226: TCP/IP 已经达到并发 TCP 连接尝试次数的安全限制。

你可能就需要使用这个补丁了。

可以安全用于 XP 下面的此类补丁很多,比如国产的大多数 BT 软件,迅雷等,都带着个功能,而 Vista 以至于 Vista SP1 甚至兼容 64 位版本的补丁就不多见了,而今天给大家推荐的就是通吃目前流行的 Windows 操作系统的一个补丁,它支持:

Windows XP SP2(x86,x64)/SP3, 2003 Server SP1(x86)/SP2(x86,x64), Vista SP1(x86,x64).

Half-Open Limited Fix 是老毛子写的一个专门破解 Windows 系统 TCP 半开数连接的补丁,技术上比较成熟,使用比较安全。

下载解压后运行程序,选择语言“英语”或者“俄语”,填入你想要的连接数即可,注意 Vista 下面最大只可 255 ,据作者说是因为在 Vista 下控制连接数的参数只在 tcpip.sys 占用一个字节的原因。

使用此补丁是透明的,也就是打了补丁后不需要你启动按 F8 那些,启动后桌面也不会有“工程模式”,“Test Mode”等字样。而且程序自动备份了原来的 tcpip.sys 文件,出问题可以恢复,无需太多担心安全问题。

当然毕竟是修改了系统文件,没什么需要的同学就别搞了,搞出问题老毛子不会负责我也不会负责滴。 :mrgreen:

此补丁在中文 Vista SP1 下测试成功。


Sep 17

IDM

现在这世道推荐一款下载软件可真是需要一定的心理素质 :roll: 凡是上网的基本都有心仪的下载软件,比如快车蚂蚁,又比如传送带,迅雷。

其实 Internet Download Manager 比起浩若繁星的其它下载软件来只有一个过人之处,就是它那个特别针对 IE 内核浏览器的监控模块。

国外一些站点,例如著名的 RapidShare , 需要你的下载软件支持 HTTP POST 方式才能拦截到下载请求并且正常下载这些站点的链接。

目前,新式的下载软件基本都以支持 HTTP POST ,比如迅雷,快车,Orbit 等。它们在 Internet Explorer 下面都能非常好的工作,但是在基于 IE 的其它浏览器(例如 Gosurf、Greenbrowser 等等)则很不稳定,表现为不能截取到下载请求,或者能截取不能正常下载。而 Internet Download Manager 则因为专门考虑了这个问题,对这些第三方浏览器支持的特别好。

其它方面 Internet Download Manager 倒也就没什么过人之处了,中规中矩,不过不能自动把下载成功的文件从列表中删除让我很不爽 :mad:

这次提供的版本是需要购买才能获取下载地址的 Full 版+Unreal 同志的 Patch 第三版。 :mrgreen:



Aug 03

不玩网游,难道你不玩 FPS 么?如果你玩 FPS 的话,你应该明白 Quake3 是什么概念,Quake3 当之无愧是最具魅力的 FPS 。

QuakeLive 是什么概念?就是打开网页就能玩到 Quake3 了,卡马克把原汁原味的 Quake3 做成了网页游戏!

你以为网游就是画几个房子几个村庄一些文字数据加几张简陋的图片的那种弱智的策略游戏么?!

QuakeLive 是实实在在的 3D FPS 游戏!

Quake3 神话级人物 Fatal1ty 和 Zero4 都已参与 QuakeLive 的测试,你还在等什么?赶快去 QuakeLive 站点申请内测账号吧!祝你好运!

高清视频下载

在昨日开幕的 QuakeCon 08 大会上,卡马克宣布支撑《Rage》的技术平台已接近完工:

  “只剩下几个为数不多的重大技术问题亟待解决,我们胜利在望,终于可以躺下歇会儿了。”

  卡马克称 MegaTexture 系统还需微调一下,但最主要的部分大体上已经完成,这预示着三年前开始动工的 id Tech 5 引擎终于成形。卡马克表示他大部分精力都花在《Rage》项目上,《Rage》的代码随后将应用于《Doom4》,后者最主要任务就是重新设计游戏关卡及角色之类的创意元素:

  “我们将为《Doom4》团队提供一系列开发工具以便让他们完成主要创作任务”,但他同时表示在游戏引擎方面的工作并未结束:

  “我至少要让它(指Doom4)的画面表现使人趋之若鹜。”

  按卡马克先前的说法,《Doom4》可以为了追求画面而在运行帧率上做出妥协:《Rage》目标是 60 帧/秒,而《Doom4》能维持在 30 帧上下就万事大吉了。

  卡马克这次还谈到了《Doom4》的多人模式,许诺将加强该作的多人部分:“可能还是不如 Quake Live ,但至少要比《Quake 4》及《Doom 3》强。”

  附赠《Rage》在QuakeCon 08上的枪版视频>>>

  至于《Rage》的上市日期到底是 2009 还是 2010 甚至 2011 年,该作项目主管 Tim Willits 只排除了2011年的说法:“还不至于那么晚。”

  但更进一步的日程安排恕难确认:“我们觉得它足够好玩了才会罢手。”


[2/4]  < 1 2 3 4 >