存档

2004年11月 的存档

是男人就撑过20秒

2004年11月28日 没有评论

点击下载此文件

不错的小游戏,才10多k。看看你能坚持多少秒。

我刚刚过20秒,呵呵~~

分类: 往事回忆 标签:

Google又出新花样~~

2004年11月28日 没有评论

呵呵~~刚才用google是无意看到的~~
由于我的电脑有点问题,看不到他的结果,不知翻译质量如何。自己去试试吧~~

分类: 往事回忆 标签:

我的E-mail地址!

2004年11月14日 1 条评论




呵呵,这不是我做的,有一个网站可以生成。
http://www.nhacks.com/email
支持gmail,hotmail,msn,yahoo,qq等等。

分类: 往事回忆 标签:

破解XP SP2同时尝试连接数的东西。

2004年11月7日 1 条评论

SP2限制同时尝试连接数不能超过10,一旦超过该值,后续的连接请求就会被放入队列。
这个东西可以破解。

点击下载此文件

源代码:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include <imagehlp.h>
//---------------------------------------------------------------------------
#pragma resource "*.dfm"
#pragma resource "xml.res"
TfrmBetter *frmBetter;
const int SP2TCPIPSIZE = 359040L;
const int SP2TCPIPPOS  = 0x4F322L;
//---------------------------------------------------------------------------
__fastcall TfrmBetter::TfrmBetter(TComponent* Owner)
    : TForm(Owner)
{
    FIsXP = false;
}
//---------------------------------------------------------------------------
String GetFileVersionString(LPTSTR pFile)
{
    if(pFile==NULL||pFile[0]==0) return String();
    DWORD Temp0 = 0, Temp1 = 0;
    DWORD dwSize = ::GetFileVersionInfoSize(pFile, &Temp0);
    if(dwSize==0) throw Exception("Error Size!");
    char* pVersion = new char[dwSize + 10];
    memset(pVersion, 0, dwSize + 10);
    if(!GetFileVersionInfo(pFile, 0, dwSize + 2, pVersion))
    {
        delete[] pVersion;
        throw Exception("Error Version!");
    }
    VS_FIXEDFILEINFO* pFixed = NULL;
    if(!VerQueryValue(pVersion, "\", (LPVOID*)&pFixed, (PUINT)&Temp1)
        ||pFixed==NULL||Temp1<sizeof(VS_FIXEDFILEINFO))
    {
        delete[] pVersion;
        throw Exception("Error Value!");
    }
    Temp0 = pFixed->dwFileVersionMS;
    Temp1 = pFixed->dwFileVersionLS;
    delete[] pVersion;
    return String().sprintf("%u.%u.%u.%u", (Temp0>>16), (Temp0&0xFFFF), (Temp1>>16), (Temp1&0xFFFF));
}
//---------------------------------------------------------------------------
DWORD SimpleGetFileSize(LPTSTR pFile)
{
    if(pFile==NULL||pFile[0]==0) return (DWORD)~0;
    HANDLE hFile = CreateFile(pFile, GENERIC_READ, FILE_SHARE_READ,
                              NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,
                              NULL);
    if(hFile==NULL||hFile==INVALID_HANDLE_VALUE) return (DWORD)~0;
    DWORD dwSize = GetFileSize(hFile, NULL);
    CloseHandle(hFile);
    return dwSize;
}
//---------------------------------------------------------------------------
void __fastcall TfrmBetter::FormCreate(TObject *Sender)
{
    try
    {
        DetectSystemInformation();
    }
    catch(Exception& e)
    {
        MessageBox(NULL, e.Message.c_str(), "Error", MB_OK|MB_ICONSTOP);
        Application->ShowMainForm = false;
        Application->Terminate();
    }
    catch(...)
    {
        Application->ShowMainForm = false;
        Application->Terminate();
    }
}
//---------------------------------------------------------------------------
/*detect system information, when return, means no error, else exception will be throwed!*/
void __fastcall TfrmBetter::DetectSystemInformation()
{
    //Detect System Information
    OSVERSIONINFO os = {0,};
    os.dwOSVersionInfoSize = sizeof(os);
    if(!GetVersionEx(&os)) throw Exception("Fatal Error: Get System Information!");
    FIsXP = (os.dwMajorVersion==5&&os.dwMinorVersion==1&&os.dwPlatformId==VER_PLATFORM_WIN32_NT);
    Memo1->Lines->Add(String().sprintf("Operating System: Microsoft Windows %u.%u.%u %s",
                                        os.dwMajorVersion, os.dwMinorVersion,
                                        os.dwBuildNumber, os.szCSDVersion));
    //Get tcpip.sys version string
    char    szFile[MAX_PATH + 128];
    memset(szFile, 0, sizeof(szFile));
    ::GetSystemDirectory(szFile, MAX_PATH);
    if(szFile[0]&&szFile[strlen(szFile)-1]!='\')
    {
        strcat(szFile, "\drivers\tcpip.sys");
    }
    else
    {
        strcat(szFile, "drivers\tcpip.sys");
    }
    if(!FileExists(szFile)) throw Exception("tcpip.sys not found!");
    String version = GetFileVersionString(szFile);
    Memo1->Lines->Add(String("Version of tcpip.sys: ") + version);
    //Check tcpip.sys version is ok or force param is specified
    LPTSTR pCmd = GetCommandLine();
    if(version=="5.1.2600.2180"&&SimpleGetFileSize(szFile)==SP2TCPIPSIZE)
    {
        Memo1->Lines->Add("SP2 tcpip.sys detected!");
    }
    else if(pCmd&&strstr(pCmd, "/force")!=NULL)
    {
        Memo1->Lines->Add("Warning: tcpip.sys does not match, but /force is specified!");
    }
    else
    {
        FIsXP = false;
        throw Exception(Memo1->Text + "
The version of tcpip.sys does not match! Operation Aborted!");
    }
    //now, we start to detect current tcp/ip limitation
    HANDLE hFile = ::CreateFile(szFile, GENERIC_READ, FILE_SHARE_READ, NULL,
                                OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    if(hFile==NULL||hFile==INVALID_HANDLE_VALUE) throw Exception("mmm....impossible");
    if(::SetFilePointer(hFile, SP2TCPIPPOS, NULL, FILE_BEGIN)!=(DWORD)SP2TCPIPPOS)
    {
        ::CloseHandle(hFile);
        throw Exception("Error: SetFilePointer!");
    }
    DWORD dwRead = 0, dwValue = 0;
    if(::ReadFile(hFile, (LPVOID)&dwValue, sizeof(DWORD), &dwRead, NULL)&&dwRead==sizeof(DWORD))
    {
        edLimit->Text = dwValue;
    }
    ::CloseHandle(hFile);
    FIsXP    = true;
    FTCPIP    = szFile;
}
//---------------------------------------------------------------------------
void __fastcall TfrmBetter::btApplyClick(TObject *Sender)
{
    if(!FIsXP||FTCPIP.IsEmpty()) throw Exception("not SP2!");
    //backup a copy of the tcpip.sys
    ::CopyFile(FTCPIP.c_str(), (FTCPIP + ".old").c_str(), TRUE);
    //get new value
    int nValue = StrToIntDef(edLimit->Text.Trim(), 120);
    if(nValue<=0||nValue>0x7FFFFFFE) nValue = 120;
    //first, we open the file for read/write
    HANDLE hFile = ::CreateFile(FTCPIP.c_str(),
                                GENERIC_READ|GENERIC_WRITE,
                                FILE_SHARE_READ,
                                NULL,
                                OPEN_EXISTING,
                                FILE_ATTRIBUTE_NORMAL,
                                NULL);
    if(hFile==NULL||hFile==INVALID_HANDLE_VALUE) throw Exception("Invalid File!");
    DWORD  dwSize = ::GetFileSize(hFile, NULL);
    if(dwSize==(DWORD)~0||dwSize<=(DWORD)(SP2TCPIPPOS + sizeof(DWORD)))
    {
        ::CloseHandle(hFile);
        throw Exception("Invalid FileSize!");
    }
    //second, map the file
    HANDLE hMap = ::CreateFileMapping(hFile, NULL, PAGE_READWRITE, 0, 0, NULL);
    ::CloseHandle(hFile);
    if(hMap==NULL||hMap==INVALID_HANDLE_VALUE) throw Exception("Invalid Map!");
    PVOID pFile = ::MapViewOfFile(hMap, FILE_MAP_READ|FILE_MAP_WRITE, 0, 0, 0);
    if(pFile==NULL)
    {
        ::CloseHandle(hMap);
        throw Exception("Map File Error!");
    }
    //third, change the tcp/ip limitation
    __try{memmove((char*)pFile + SP2TCPIPPOS, &nValue, sizeof(DWORD));}
    __except(EXCEPTION_EXECUTE_HANDLER)
    {
        ::UnmapViewOfFile(pFile);
        ::CloseHandle(hMap);
        throw Exception("I/O Error!");
    }
    //go with checksum
    DWORD Original = 0, New = 0;
    CheckSumMappedFile(pFile, dwSize, &Original, &New);
    PIMAGE_NT_HEADERS pHeader = ImageNtHeader(pFile);
    if(pHeader&&pHeader->OptionalHeader.CheckSum==Original
        &&memcmp(&pHeader->Signature, "PE", 4)==0)
    {
        __try
        {
            pHeader->OptionalHeader.CheckSum = New;
        }
        __except(EXCEPTION_EXECUTE_HANDLER)
        {
            ::UnmapViewOfFile(pFile);
            ::CloseHandle(hMap);
            throw Exception("I/O Error!");
        }
    }
    UnmapViewOfFile(pFile);
    ::CloseHandle(hMap);
    //detect system information again
    Sleep(500);
    Memo1->Clear();
    edLimit->Text = "";
    DetectSystemInformation();
    if(StrToIntDef(edLimit->Text.Trim(), 0)==nValue)
    {
        Memo1->Lines->Add("Patch Successfully!");
    }
    else
    {
        Memo1->Lines->Add("Patch Failed!");
    }
    Memo1->Lines->Add("Restart your operating system is strongly recommended!");
}
//---------------------------------------------------------------------------
/*
    http://bbs.bytelinker.com/ from BitSpirit
*/

分类: 往事回忆 标签:

IIS限制,流量限制,CPU限制的对比

2004年11月6日 1 条评论

当前的虚拟主机主要分为三类流量限制:
一:流量限制
  就是直接限制网络流量,这种限制通常是最严厉的一种流量限制,10个g的流量大体支持50人在线以内.当月流量超过后,在一个月内网站都不能正常访问了,解决办法是升级空间或加大流量!
二:CPU限制
  CPU限制看起来没有限IIS或网络流量,但由于每一个程序运行都需要一定的CPU配额,也是变相的流量限制,通常网页显示在线过多都是由于CPU限额过小引起的!通过刷新或15秒后可以得到暂时的正常运行,通常1%的CPU限额相当于20个IIS连接!这对于论坛空间很重要,论坛的CPU限额一旦过小就会不能正常运行!
三:IIS限制
  IIS限制是现在用的最多的,也是被大多用户或主机商认可,是唯一宽松的流量限制,通常20个IIS就相当于1%CPU占用!

总而言之,虚拟主机实际上没有不限流量的,总的可以分为以上三种方式,您如何选择,要看您的需要,如果您的程序占用CPU很少,是优化的程序可以选择限CPU的,这样您的在线就可以得到最大的发挥,如果您是初学者,或是论坛用户,或网站程序中有BBS,选择IIS限制或直接流量限制是一个好的选择!

关于同时连接数与在线人数问题的详解

很多用户对连接数的概念认识都很模糊,现介绍如下:

1、浏览者访问站点,必需与站点通过TCP协议,建立连接。这个连接在从服务器上读取信息时存在,读取结束时,一般即自动关闭。所以,当一个页面已经完全地显示在客户端的显示器上时,使用的连接也许已经关闭了。

2、每个浏览者,访问某站点时,可能会占用1——3个连接,这是由计算机自动处理的,这样做的目的是为了加快速度。
相关问题:所以,对于连接数为30的基础型主机而言,有时只能十几个人访问,就不足为怪了。

3、论坛中统计的在线人数,是以某一时间段内访问论坛的活动人数为标准的,与连接数应无关系。比如动网论坛,默认好象是40分钟内(?记不清了)的活动人数。也许论坛显示某用户还在线,但该用户由于不(正)在读取论坛中页面,所以也就不会占用连接数。
相关问题:
(1)所以,只要浏览者对论坛的访问不过于集中,不会在某一时间点超出最大同时连接数,则论坛中统计的在线人数,会大大超出空间允许的最大同时连接数。
(2)某些用户为了显示论坛的人气,可以在调大论坛统计在线人数的时间范围(动网论坛提供此功能),甚至可以将一天内所有浏览你站点的人,都算作在线人数。

4、虽然服务器中可以规定每个站点的最大连接数,但同时也存在服务器的总计最大连接数。所以,即使规定用户站点的最大连接数为不限,当服务器达到了最大连接数时,仍不能访问站点。而服务器的最大连接数一般在1000——2000。
相关问题:
(1)这就是为什么服务商敢于开出不限连接数的主机,本质上不是无限连接数的。
(2)西部数码提供的主机,允许连接数均较高,应该可以满足用户需求。

5、现在的主机服务中,有些服务商利用许多人对上述概念模糊,而误导消费者,所以购主机者应谨慎从事

了解什么是IIS连接数

IIS连接数指并发连接数,什么意思呢?
要分几种情况:(以100M空间50人在线为例)
A 用户单点下载你的文件,结束后正常断开,这些连接是按照瞬间计算的,就是说你50人的网站瞬间可以接受同时50个点下载
B 用户打开你的页面,就算停留在页面没有对服务器发出任何请求,那么在用户打开一面以后的20分钟内也都要算一个在线,就是说你50人的网站20分钟内可以接受不同用户打开50个页面
C 上面B的情况用户继续打开同一个网站的其他页面,那么在线人数按照用户最后一次点击(发出请求)以后的20分钟计算,在这个20分钟内不管用户怎么点击(包括新窗口打开)都还是一人在线。
D 当你的页面内存在框架(Iframe),那么每多一个框架就要多一倍的在线!因为这相当于用户同一时间向服务器请求了多个页面。
E 当用户打开页面然后正常关闭浏览器,用户的在线人数也会马上清除。

然后了解什么是论坛在线人数。
论坛在线只是计算一定时间内的活动用户数。
这里的时间用户可以自己设定,动网论坛默认为40分钟的相对准确值。

根据上面的说明,显然论坛在线和IIS连接数的概念不同
为什么会出现IIS连接数和论坛在线不符合的情况?
现具体分析如下:

1:您使用了插件版论坛或者美化版论坛!
现在的插件很垃圾,不但占服务器资源,而且会使论坛运行变慢(没有插件可以快一倍以上),同时很占在线人数,有的插件调用很多框架,少则2、3个,多则4、5个! 甚至有在线播放音乐,这样一个人在线就相当与很多人在线!而美化版论坛因为使用大量的图片,也同样比标准版论坛占用IIS数量大。

2:您的网站是主页+论坛的形式!
这样主页和论坛要争夺你的在线人数!

3:你的论坛内部有播放器!
一个人在线,然后他在线播放音乐,就占二个人在线!

4:你的论坛内部存在框架形式的网页!
每一个框架,就多一倍的在线!

5:你的论坛设置在线时间过小!
动网默认为40分钟,因为论坛在线只是计算一定时间内的活动用户数,当您设定的时间较小的时候,看起来论坛在线的人数就自然少了!

6:你的空间存在多个论坛!
有的客户在一个空间里上传多个论坛,如BBS  BBS1   BBS2  等等  等等
毫无疑问,这样个论坛也是要争夺再线人数的!

7:你的论坛图片等文件被人盗链!
比如:你的论坛有张图片文件,被粘贴(注意是粘贴不是上传)到别的论坛!
别的论坛的用户在浏览该文件的时候也算一个在线人数!
尤其是LOGO连接的时候注意,一定要对方把您的LOGO上传到他的空间!

8:你的空间上放有下载文件!
如果用户用网络蚂蚁类的软件,每一个线程就表示一个在线,非常厉害!
——————————————————————————————————

解决办法:

1:去掉垃圾的插件版,用标准版!
2:尽量不要采用框架的形式制作页面!
3:不要放任何的音乐、电影、下载!
4:防止盗连情况的发生!
5:升级购买支持更多在线人数的空间!

分类: 往事回忆 标签:

收到了这么一封垃圾邮件……

2004年11月6日 没有评论

无话可说!我只能告诉访问过我BLOG的朋友,这个东西千万不要卖,微软可能以后对盗版查的比较紧,我们可不能为了这么一点小利,而造成以后的痛苦,再说了这个东西最少要500元以上才能买到的!

     高价收购windowsXP标签

    如果你身边有品牌电脑(台式机或笔记本),操作系统是WindowsXP,请看一下机箱上面或者底部,是否有一张WindowsXP的标签,上面有WindowsXP的序列号等信息,请小心的把它撕下来,寄给我们,我们会按照每张80-150元的价格收购。

    我们的价格是根据标签的颜色和版本的:
    版本有:WindowsXP专业版(即:WindowsXP Professional)和 WindowsXP家庭版(即:WindowsXP Home )
    颜色有:红色 (较早出厂的)、蓝色(最常见的)、绿色(最新出厂的)
    专业版的价格比家庭版的高,蓝色和绿色的价格一样,都比红色的要高,具体的请看我们网站上的说明。

    我们的网站是:http://winxp.7show.net

    有货的朋友请发邮件给我:richatonce@163.com 或者 QQ: 397701938 (如果我不在线,请给我留言) 我们长期收购!

    我们也同时收购Windows XP服务器版,Windows 2003专业版、服务器版标签,相关价格请来信咨询。

    详细情况,请访问我们的网站:http://winxp.7show.net

分类: 往事回忆 标签:

Black-Xstar's Blog 升级成功!

2004年11月6日 3 条评论

新的Blog是基于L-BLOG 1.08修改而成。
近期我将美化它。

分类: 往事回忆 标签:

刚才试图升级blog,出了点问题。

2004年11月6日 1 条评论

可能是编码问题,正在想办法……
它老是提示什么处理URL出错。

分类: 往事回忆 标签:

原来有这么多网站跟我用同一个IP地址!

2004年11月5日 没有评论

真是不看不知道,看了吓一跳

    51dailian.com
    51sogo.com
    art88.com
    askying.com
    aygcsc.com
    bf999.com
    binhuang.com
    black-xstar.com
    chengka.com
    china0595.com
    chinafpc.com
    chinagarland.com
    chinaluban.com
    chinashresin.com
    cmmetal.com
    cn-lightings.com
    cnbinfen.com
    cndonghuang.com
    cnncn.net
    craftsoul.com
    crazy520.com
    crisker.net
    cy-tour.com
    dali-ceramics.com
    ddlx.com
    diyunshe.com
    dlsimg.com
    dongfangli.com
    dqpc.com
    dqyouth.com
    duhome.com
    dzsbx.com
    edamj.com
    eshangbiao.com
    guqianbi.com
    haifengcn.net
    hb8888.com
    hdsq.com
    helan.org
    hpitcn.com
    hpolcn.net
    hty66.com
    huadajiajiao.com
    hxymx.com
    hxymx.net
    hzbr.com
    idowin.net
    jiguo.net
    jijx.com
    jinyiceramics.com
    jlswsc.com
    jrsj.com
    jtwz.org
    jx-jinma.com
    jzqz.com
    king-bird.com
    kyyq.com
    leaguet.com
    lengcool.com
    lftianli.com
    lljc.com
    longtengcasting.com
    lushanwang.com
    lxdgood.com
    lxly.com
    lyndzhang.com
    lyyg.net
    nannanbaby.com
    olserver.com
    olsw.com
    pjzxsc.com
    qqxm.com
    redstarfc.net
    sanxingci.com
    sashow.com
    sctong.com
    sd-changcheng.com
    sdtcbn.com
    shchengbang.com
    shubao.net
    sijitrade.com
    songdafood.com
    starmonth.com
    szres.com
    tdjjc.com
    tdxd.com
    threedot.net
    timmey.com
    tipv.com
    tongy.com
    try2it.com
    tsjgp.com
    tsjgp.net
    tvroxg.com
    tw1828.com
    vickigarden.com
    wangxin01.com
    wdxxcu.com
    wxfcpp.com
    wxmhd.com
    wxnanya.com
    xc-hb.com
    xc163.net
    xinshichuang.net
    xjgt.com
    xlty.com
    xmhuady.com
    xmvc.com
    xnsoft.com
    xyzlist.com
    ydycn.com
    yixinphoto.com
    yjyjy.com
    yk138.com
    ylits.com
    ynzyly.com
    yttips.com
    ywxinhua.com
    yyssj.com
    yzkk.com
    zhaozedi.com
    zhugesocks.com
    zjjingzhi.com

分类: 往事回忆 标签:

一个查询alexa排名的工具

2004年11月5日 没有评论

点击下载此文件

不是我写的,我改了一下。

分类: 往事回忆 标签: