如果你从Confluence1.4.X转向Confluence2.1.x,理由很充分,因为2.0提供了一个非常棒的WYSIWYG的界面(所见即所得的界面)。
少废话,破解也是非常简单,首先下载
http://www.blogjava.net/Files/openssl/confluence2.1.4_keygen.rar
然后,解压atlassian-extras-0.7.15.jar到Confluence目录
比如:
D:\confluence-2.1.4-std\confluence\WEB-INF\lib
(覆盖掉这个目录下的atlassian-extras-0.7.xx.jar文件)
然后,
D:\confluence-2.1.4-std\confluence\WEB-INF\lib>java keygen
Keygen for Confluence.
created by TEAM dir/ZWT.
Enter your organization name: aaa
Your license key is:
ORRrxbmEJpuFSekHXocsPbpfRqsQjBdeSELeaoRdsdHcqi
mi2KeNSsv9lIO5c4yNfRqQSd2Keusdo7ufu0TKLYqRuKIa
MmURQnoPmnPprrNpURoNoMPRrnQqQNxtwstqnpQmMPurUn
nqrouunrpvvqUnnqrouunrpvvqUXXXUvssssss


运行Confluence(按照confluence install instruction)
输入上面蓝色的key,即可运行Confluence2.0
2.0感觉很美妙,比1.4强很多。
鉴于直接提供破解文件会影响Blogjava,所以我提供了一个经过加密的破解包
有需要并用于研究性质的朋友请回复Email地址。

MS Jet SQL for Access 2000中级篇

[不指定 2007/08/09 19:23 | by ipaddr ]

该系列的文章解释了什么是Microsoft? Jet SQL,并说明了它如何在Access 2000的应用程序中使用。本文是基础、中级和高级三篇中的第二篇。这些文章循序渐进的说明了使用Jet SQL的语法和一些方法,并示范了对于Access 2000来说较新的Jet SQL的特征。最后,本文的所有SQL参考都是针对Microsoft Jet 4.0 数据引擎所用的。

c#操作ACCESS数据库

[不指定 2007/08/09 14:43 | by ipaddr ]

手头没有Microsoft Access,如何建立数据库,一切依然简单.
首先引用C:\Program Files\Common Files\System\ado\msadox.dll,该DLL包含ADOX命名空间;
接着引用C:\Program Files\Common Files\System\ado\msjro.dll,该DLL包含JRO命名空间
注意:如,导入dll不成功,手动把com组件导入为 .net组件,在用vs.net工具导入 

using System;
using System.IO;
using ADOX; //该命名空间包含创建ACCESS的类(方法)--解决方案 ==> 引用 ==> 添加引用 ==> 游览找到.dll
using JRO; //该命名空间包含压缩ACCESS的类(方法)

public class Access
...{
/**////根据指定的文件名称创建ACCESS数据库
///mdbPath:要创件的ACCESS绝对路径
public void Create( string mdbPath )
...{
if( File.Exists(mdbPath) ) //检查数据库是否已存在
...{
throw new Exception("目标数据库已存在,无法创建");
}
// 可以加上密码,这样创建后的数据库必须输入密码后才能打开
mdbPath = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + mdbPath;
// 创建一个CatalogClass对象的实例,
ADOX.CatalogClass cat = new ADOX.CatalogClass();
// 使用CatalogClass对象的Create方法创建ACCESS数据库
cat.Create(mdbPath);
}

/**////压缩修复ACCESS数据库,mdbPath为数据库绝对路径
public void Compact( string mdbPath )
...{
if( !File.Exists(mdbPath) ) //检查数据库是否已存在
...{
throw new Exception("目标数据库不存在,无法压缩");
}
//声明临时数据库的名称
string temp = DateTime.Now.Year.ToString();
temp += DateTime.Now.Month.ToString();
temp += DateTime.Now.Day.ToString();
temp += DateTime.Now.Hour.ToString();
temp += DateTime.Now.Minute.ToString();
temp += DateTime.Now.Second.ToString() + ".bak";
temp = mdbPath.Substring(0, mdbPath.LastIndexOf("\")+1) + temp;
//定义临时数据库的连接字符串
temp2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + temp;
//定义目标数据库的连接字符串
mdbPath2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + mdbPath;
//创建一个JetEngineClass对象的实例
JRO.JetEngineClass jt = new JRO.JetEngineClass();
//使用JetEngineClass对象的CompactDatabase方法压缩修复数据库
jt.CompactDatabase( mdbPath2, temp2 );
//拷贝临时数据库到目标数据库(覆盖)
File.Copy( temp, mdbPath, true );
//最后删除临时数据库
File.Delete( temp );
}

/**//// 备份数据库,mdb1,源数据库绝对路径; mdb2: 目标数据库绝对路径
public void Backup( string mdb1, string mdb2 )
...{
if( !File.Exists(mdb1) )
...{
throw new Exception("源数据库不存在");
}
try
...{
File.Copy( mdb1, mdb2, true );
}
catch( IOException ixp )
...{
throw new Exception(ixp.ToString());
}
}

/**////恢复数据库,mdb1为备份数据库绝对路径,mdb2为当前数据库绝对路径
public void Recover( string mdb1, string mdb2 )
...{
if( !File.Exists(mdb1) )
...{
throw new Exception("备份数据库不存在");
}
try
...{
File.Copy( mdb1, mdb2, true );
}
catch( IOException ixp )
...{
throw new Exception(ixp.ToString());
}
}
}

Getting The Real IP Of Your Users

[不指定 2007/08/06 15:52 | by ipaddr ]

There are a lot of sites around the internet that try and get your IP address. Most of their reasons are legitimate. For example Google Adsense will log your IP to see where the user clicking the advert is from (and kick you off if its the same IP you logged into that account with).

However, there are some sites that try to look at your IP for various reasons but do it wrong. Rapidshare is a beatifully painful example of this. If you're on an ISP that uses a transparent proxy, RapidShare will log the proxy address instead of the actual account IP. As they limit the downloading on a per-IP basis, that means everyone using that ISP, going through that proxy, has the same IP to Rapidshare, meaning the limit to how much you download is split among those users.

Languages

  • VB.net
  • C#
  • PHP
  • Java and JSP
  • ASP/VBScript
  • ColdFusion
  • Perl

What I'm saying here is, if you're going to do your own IP lookups for whatever reason, do them correctly. My initial code here was in VB.net but since I have translated what its doing to the most popular server-side languages. As its based on the server variables, rather than the code's process, its quite easy to port to something else if you need to.

The lookup that these "incorrect" sites are doing is something like this:

Request.ServerVariables("REMOTE_ADDR")


What then need to be doing is comparing the HTTP_X_FORWARDED_FOR variable against it, to check that there isn't a non-transparent proxy in the way. Like so:


' Look for a proxy address first
Dim _ip As String = Request.ServerVariables("HTTP_X_FORWARDED_FOR")

' If there is no proxy, get the standard remote address
If (_ip = "" Or _ip.ToLower = "unknown") Then _
    _ip = Request.ServerVariables("REMOTE_ADDR")

  

This doesnt help people that are limited to (or otherwise) on anonymous proxies. They will hide the forwarding address (like they're supposed to) and therefore the lookup will ONLY get the proxy's address. Some ISPs do this by default to "protect" their users... Its just retarded. If you ISP does this, and you've been wondering why RS or other sites don't work... Now you know.

Here are some more examples in other languages:

C#


// Look for a proxy address first
String _ip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
// If there is no proxy, get the standard remote address
If (_ip == "" || _ip.ToLower == "unknown")
    _ip = Request.ServerVariables["REMOTE_ADDR"];

PHP

Based on code from OxyScripts.

/**
* Call as: $userp = GetUserIP();
*/
function GetUserIP() {
    if (isset($_SERVER)) {
        if (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
            return $_SERVER["HTTP_X_FORWARDED_FOR"];
       
        if (isset($_SERVER["HTTP_CLIENT_IP"]))
            return $_SERVER["HTTP_CLIENT_IP"];
        return $_SERVER["REMOTE_ADDR"];
    }
    if (getenv('HTTP_X_FORWARDED_FOR'))
        return getenv('HTTP_X_FORWARDED_FOR');
    if (getenv('HTTP_CLIENT_IP'))
        return getenv('HTTP_CLIENT_IP');
    return getenv('REMOTE_ADDR');
}

Java and JSP

String ipaddress = request.getHeader("HTTP_X_FORWARDED_FOR");
if (ipaddress  == null)
   ipaddress = request.getRemoteAddr();

ASP/VBScript


ipaddress = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
if ipaddress = "" then
    ipaddress = Request.ServerVariables("REMOTE_ADDR")
end if

ColdFusion


<CFCOMPONENT>
    <CFIF #CGI.HTTP_X_Forwarded_For# EQ "">
        <CFSET ipaddress="#CGI.Remote_Addr#">
    <CFELSE>
        <CFSET ipaddress="#CGI.HTTP_X_Forwarded_For#">
    </CFIF>
</CFCOMPONENT>

Perl

$IPAddress = $ENV{HTTP_X_FORWARDED_FOR};
if ($IPAddress == "") {
    $IPAddress = $ENV{HTTP_X_FORWARDED_FOR};
}

If you know anymore, just ping them in my general direction and they can be added.


分页: 2/2 第一页 上页 1 2 最后页 [ 显示模式: 摘要 | 列表 ]