主题:  不进入CF管理台管理debugging ip地址

s22

职务:版主
等级:4
金币:10.0
发贴:1634
注册:2004/12/19 13:06:46
#12003/12/8 0:17:20
ben forta 写的一个COMPONENT
<code>
<!---
Name: debugip.cfc
Description: List, add, and delete ColdFusion MX debugging
IP addresses (without needing CF Admin access).
Usage: This is a CFC, use with <CFINVOKE> or as an
object. List returns current IP list as a
query, Add adds an IP address to the list, and
Delete deletes an address.
Author: Ben Forta, ben@forta.com
History: 12/04/2004, initial version.
12/04/2004, changed IsIP() to use a regex.
--->

<CFCOMPONENT>


<!--- Constructor --->
<CFSET fObj=CreateObject("JAVA",
"coldfusion.server.ServiceFactory">
<CFSET dbObj = fObj.getDebuggingService()>


<!--- List IP addresses --->
<CFFUNCTION NAME="List"
RETURNTYPE="query"
OUTPUT="no"
HINT="Get current debug IP addresses">
<!--- Init variables --->
<CFSET VAR i=0>
<!--- Create result query --->
<CFSET VAR q=QueryNew("ip">
<!--- Loop through IP addresses --->
<CFLOOP INDEX="i" LIST="#dbObj.iplist.iplist#">
<!--- Add each one to the query --->
<CFSET QueryAddRow(q)>
<CFSET QuerySetCell(q, "ip", i)>
</CFLOOP>
<!--- And return the list --->
<CFRETURN q>
</CFFUNCTION>


<!--- Add an IP address to the list --->
<CFFUNCTION NAME="Add"
RETURNTYPE="boolean"
OUTPUT="no"
HINT="Add an IP address to the list">
<CFARGUMENT NAME="ip"
TYPE="string"
REQUIRED="yes"
HINT="IP address to add">
<!--- Init variables --->
<CFSET VAR result=FALSE>
<!--- Check valid IP and not already in list --->
<CFIF IsIP(ARGUMENTS.ip)
AND (dbObj.iplist.ipList EQ ""
OR NOT dbObj.isValidIP(ARGUMENTS.ip))>
<!--- Add it --->
<CFSET dbObj.iplist.ipList=
ListAppend(dbObj.iplist.ipList, ARGUMENTS.ip)>
<CFSET result=TRUE>
</CFIF>
<!--- Return result --->
<CFRETURN result>
</CFFUNCTION>


<!--- Delete an IP address from the list --->
<CFFUNCTION NAME="Delete"
RETURNTYPE="boolean"
OUTPUT="no"
HINT="Delete an IP address from the list">
<CFARGUMENT NAME="ip"
TYPE="string"
REQUIRED="yes"
HINT="IP address to delete">
<!--- Init variables --->
<CFSET VAR result=FALSE>
<CFSET VAR i=0>
<!--- Check valid IP and in list --->
<CFIF IsIP(ARGUMENTS.ip)
AND dbObj.isValidIP(ARGUMENTS.ip)>
<!--- Find it --->
<CFSET i=ListFind(dbObj.iplist.ipList, ARGUMENTS.ip)>
<!--- Delete it --->
<CFIF i>
<CFSET dbObj.iplist.ipList=
ListDeleteAt(dbObj.iplist.ipList, i)>
<CFSET result=TRUE>
</CFIF>
</CFIF>
<!--- Return result --->
<CFRETURN result>
</CFFUNCTION>


<!--- Internal function, check IP is valid --->
<CFFUNCTION NAME="IsIP"
RETURNTYPE="boolean"
OUTPUT="no"
ACCESS="private">
<CFARGUMENT NAME="ip"
TYPE="string"
REQUIRED="yes">
<!--- Init variables --->
<CFSET VAR result=FALSE>
<!--- Check if valid IP address --->
<CFIF REFind("^(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))$",
ARGUMENTS.ip)>
<CFSET result=TRUE>
</CFIF>
<!--- Return result --->
<CFRETURN result>
</CFFUNCTION>


</CFCOMPONENT>

//使用方法
<!--- Get debug component --->
<CFOBJECT COMPONENT="debugip" NAME="dObj">

<!--- Get and display IP list --->
<CFSET ipList=dObj.List()>
<CFDUMP VAR="#ipList#">

<!--- Add an address --->
<CFSET result=dObj.Add("1.2.3.4">

<!--- Get and display IP list --->
<CFSET ipList=dObj.List()>
<CFDUMP VAR="#ipList#">

<!--- Remove just added address --->
<CFSET result=dObj.Delete("1.2.3.4">

<!--- Get and display IP list --->
<CFSET ipList=dObj.List()>
<CFDUMP VAR="#ipList#">
</code>