免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5039 | 回复: 7
打印 上一主题 下一主题

如何用JAVA在客户端自动登录? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-29 21:55 |只看该作者 |倒序浏览
我用小区宽带上网,每次都得从WEB登录才能上网,谁能帮忙写个程序,实现自动WEB登录。
下面是打开的服务器端HTML代码,其中hexMD5()中的数值是可变的,不可预知的:

<html>
<head>
    <title>Login</title>
</head>

<body>

    <form name="login" action="http://10.56.0.1/login" method="post" onSubmit="return doLogin()">
        <input name="username" type="text" value="username"/>
        <input name="password" type="password" value="password"/>
        <input type="submit" value="确定" />
    </form>

    <script type="text/javascript" src="./md5.js"></script>
    <script type="text/javascript">
        function doLogin() {
            document.login.password.value = hexMD5('\330' + document.login.password.value + '\226\211\202\022\277\305\133\227\337\152\146\053\313\210\132\354');
            document.login.submit();
            return false;
        }
    </script>

</body>
</html>

论坛徽章:
0
2 [报告]
发表于 2009-12-29 22:02 |只看该作者
我想实现类似下面JS的功能,谁能帮忙写个程序?要在后台运行,不显示IE窗口。

var ie = new ActiveXObject("InternetExplorer.Application");

ie.navigate("http://10.56.0.1");
while(ie.busy){WScript.sleep(100);}

var document = ie.document;
var window = document.parentWindow;
var form = document.forms[0];

form.username.value = "username";
form.password.value = "password";

form.elements[2].click();


[ 本帖最后由 FunFreeBSD 于 2009-12-29 23:12 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2009-12-31 22:32 |只看该作者
我找了个httpunit,可以自动登录了,但是会打印页面信息,而且有错误。
怎么才能不打印输出和错误信息?

import java.io.*;
import java.net.*;

import com.meterware.httpunit.*;
import com.meterware.pseudoserver.*;
import com.meterware.servletunit.*;

public class WebLogin {

&nbsp;&nbsp;&nbsp;&nbsp;public static void main(String[] args) {

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebConversation webConversation = new WebConversation();

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try {

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebResponse response = webConversation.getResponse("http://10.56.0.1/login");

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebForm form = response.getFormWithName("login");

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form.setParameter("username","username");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form.setParameter("password","password");

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form.submit();

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch (Exception e) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;}

}



[ 本帖最后由 FunFreeBSD 于 2009-12-31 22:37 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2009-12-31 22:42 |只看该作者
错误信息如下:

org.mozilla.javascript.EcmaError: TypeError: Cannot find function setInterval in object [object Window]. (httpunit#1)
        at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3654)
        at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3632)
        at org.mozilla.javascript.ScriptRuntime.typeError(ScriptRuntime.java:3660)
        at org.mozilla.javascript.ScriptRuntime.typeError2(ScriptRuntime.java:3679)
        at org.mozilla.javascript.ScriptRuntime.notFunctionError(ScriptRuntime.java:3743)
        at org.mozilla.javascript.ScriptRuntime.getPropFunctionAndThisHelper(ScriptRuntime.java:2247)
        at org.mozilla.javascript.ScriptRuntime.getPropFunctionAndThis(ScriptRuntime.java:2214)
        at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:3143)
        at script(httpunit:1)
        at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2487)
        at org.mozilla.javascript.InterpretedFunction.exec(InterpretedFunction.java:17
        at org.mozilla.javascript.Context.evaluateString(Context.java:1104)
        at com.meterware.httpunit.javascript.ScriptingEngineImpl.runScript(ScriptingEngineImpl.java:92)
        at com.meterware.httpunit.scripting.ScriptableDelegate.runScript(ScriptableDelegate.java:8
        at com.meterware.httpunit.parsing.NekoDOMParser.runScript(NekoDOMParser.java:151)
        at com.meterware.httpunit.parsing.ScriptFilter.getTranslatedScript(ScriptFilter.java:150)
        at com.meterware.httpunit.parsing.ScriptFilter.endElement(ScriptFilter.java:131)
        at org.cyberneko.html.HTMLTagBalancer.callEndElement(HTMLTagBalancer.java:1132)
        at org.cyberneko.html.HTMLTagBalancer.endElement(HTMLTagBalancer.java:1034)
        at org.cyberneko.html.filters.DefaultFilter.endElement(DefaultFilter.java:206)
        at org.cyberneko.html.filters.NamespaceBinder.endElement(NamespaceBinder.java:329)
        at org.cyberneko.html.HTMLScanner$ContentScanner.scanEndElement(HTMLScanner.java:305
        at org.cyberneko.html.HTMLScanner$ContentScanner.scan(HTMLScanner.java:1994)
        at org.cyberneko.html.HTMLScanner.scanDocument(HTMLScanner.java:907)
        at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:499)
        at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:452)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
        at com.meterware.httpunit.parsing.NekoHTMLParser.parse(NekoHTMLParser.java:4
        at com.meterware.httpunit.HTMLPage.parse(HTMLPage.java:271)
        at com.meterware.httpunit.WebResponse.getReceivedPage(WebResponse.java:1301)
        at com.meterware.httpunit.WebResponse.getFrames(WebResponse.java:1285)
        at com.meterware.httpunit.WebResponse.getFrameRequests(WebResponse.java:1024)
        at com.meterware.httpunit.FrameHolder.updateFrames(FrameHolder.java:179)
        at com.meterware.httpunit.WebWindow.updateFrameContents(WebWindow.java:315)
        at com.meterware.httpunit.WebClient.updateFrameContents(WebClient.java:526)
        at com.meterware.httpunit.WebWindow.updateWindow(WebWindow.java:201)
        at com.meterware.httpunit.WebWindow.getSubframeResponse(WebWindow.java:183)
        at com.meterware.httpunit.WebWindow.getResponse(WebWindow.java:15
        at com.meterware.httpunit.WebResponse$Scriptable.setLocation(WebResponse.java:88
        at com.meterware.httpunit.javascript.JavaScript$Window.setLocation(JavaScript.java:343)
        at com.meterware.httpunit.javascript.JavaScript$Location.jsSet_href(JavaScript.java:590)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:161)
        at org.mozilla.javascript.ScriptableObject.putImpl(ScriptableObject.java:2109)
        at org.mozilla.javascript.ScriptableObject.put(ScriptableObject.java:319)
        at com.meterware.httpunit.javascript.JavaScript$JavaScriptEngine.put(JavaScript.java:190)
        at org.mozilla.javascript.ScriptableObject.putProperty(ScriptableObject.java:1729)
        at org.mozilla.javascript.ScriptRuntime.setObjectProp(ScriptRuntime.java:1557)
        at org.mozilla.javascript.ScriptRuntime.setObjectProp(ScriptRuntime.java:1547)
        at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:3036)
        at script.startClock(httpunit:2)
        at script.x(httpunit)
        at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2487)
        at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:164)
        at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:39
        at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3065)
        at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:162)
        at com.meterware.httpunit.javascript.ScriptingEngineImpl.doEventScript(ScriptingEngineImpl.java:131)
        at com.meterware.httpunit.scripting.ScriptableDelegate.doEventScript(ScriptableDelegate.java:70)
        at com.meterware.httpunit.WebResponse$Scriptable.load(WebResponse.java:819)
        at com.meterware.httpunit.javascript.JavaScript.load(JavaScript.java:80)
        at com.meterware.httpunit.javascript.JavaScriptEngineFactory.load(JavaScriptEngineFactory.java:62)
        at com.meterware.httpunit.RequestContext.runScripts(RequestContext.java:44)
        at com.meterware.httpunit.WebWindow.getResponse(WebWindow.java:159)
        at com.meterware.httpunit.WebWindow.getResponse(WebWindow.java:125)
        at com.meterware.httpunit.WebClient.getResponse(WebClient.java:96)
        at WebLogin.main(WebLogin.java:17)
org.mozilla.javascript.WrappedException: Wrapped com.meterware.httpunit.ScriptException: Script 'var intervaltime;
intervaltime=window.setInterval(onTimer,1000);
function onTimer()
{
        var ss,d=0,h=0,m=0,s=0;
        ss=timer1.innerText;
        if(ss.indexOf("天">=0){
                d=ss.substr(0,ss.indexOf("天");
                ss=ss.substr(ss.indexOf("天"+1);
        }
        if(ss.indexOf("h">=0){
                h=ss.substr(0,ss.indexOf("小时");
                ss=ss.substr(ss.indexOf("小时"+1);
        }
        if(ss.indexOf("分">=0){
                m=ss.substr(0,ss.indexOf("分");
                ss=ss.substr(ss.indexOf("分"+1);
        }
        if(ss.indexOf("秒">=0){
                s=ss.substr(0,ss.indexOf("秒"));
        }
        s++;
        if(s>=60)
        {
                s=s-60;
                m++;
        }
        if(m>=60){
                m=m-60;
                h++;
        }
        if(h>=24){
                h=h-24;
                d++;
        }
        ss="";
        if(d>0)ss=d+"天";
        if(h>0) ss=ss+h+"小时";
        if(m>0) ss=ss+m+"分";
        if(s>0) ss=ss+s+"秒";
        timer1.innerText=ss;
}

    function openLogout() {
        if (window.name != 'hotspot_status') return true;
        open('http://10.56.0.1/logout', 'hotspot_logout', 'toolbar=0,location=0,directories=0,status=0,menubars=0,resizable=1,width=280,height=250');
        window.close();
        return false;
    }
//' failed: org.mozilla.javascript.EcmaError: TypeError: Cannot find function setInterval in object [object Window]. (httpunit#1) (httpunit#2)
        at org.mozilla.javascript.Context.throwAsScriptRuntimeEx(Context.java:1773)
        at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:183)
        at org.mozilla.javascript.ScriptableObject.putImpl(ScriptableObject.java:2109)
        at org.mozilla.javascript.ScriptableObject.put(ScriptableObject.java:319)
        at com.meterware.httpunit.javascript.JavaScript$JavaScriptEngine.put(JavaScript.java:190)
        at org.mozilla.javascript.ScriptableObject.putProperty(ScriptableObject.java:1729)
        at org.mozilla.javascript.ScriptRuntime.setObjectProp(ScriptRuntime.java:1557)
        at org.mozilla.javascript.ScriptRuntime.setObjectProp(ScriptRuntime.java:1547)
        at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:3036)
        at script.startClock(httpunit:2)
        at script.x(httpunit)
        at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2487)
        at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:164)
        at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:39
        at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3065)
        at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:162)
        at com.meterware.httpunit.javascript.ScriptingEngineImpl.doEventScript(ScriptingEngineImpl.java:131)
        at com.meterware.httpunit.scripting.ScriptableDelegate.doEventScript(ScriptableDelegate.java:70)
        at com.meterware.httpunit.WebResponse$Scriptable.load(WebResponse.java:819)
        at com.meterware.httpunit.javascript.JavaScript.load(JavaScript.java:80)
        at com.meterware.httpunit.javascript.JavaScriptEngineFactory.load(JavaScriptEngineFactory.java:62)
        at com.meterware.httpunit.RequestContext.runScripts(RequestContext.java:44)
        at com.meterware.httpunit.WebWindow.getResponse(WebWindow.java:159)
        at com.meterware.httpunit.WebWindow.getResponse(WebWindow.java:125)
        at com.meterware.httpunit.WebClient.getResponse(WebClient.java:96)
        at WebLogin.main(WebLogin.java:17)
Caused by: com.meterware.httpunit.ScriptException: Script 'var intervaltime;
intervaltime=window.setInterval(onTimer,1000);
function onTimer()
{
        var ss,d=0,h=0,m=0,s=0;
        ss=timer1.innerText;
        if(ss.indexOf("天")>=0){
                d=ss.substr(0,ss.indexOf("天"));
                ss=ss.substr(ss.indexOf("天")+1);
        }
        if(ss.indexOf("h")>=0){
                h=ss.substr(0,ss.indexOf("小时"));
                ss=ss.substr(ss.indexOf("小时")+1);
        }
        if(ss.indexOf("分")>=0){
                m=ss.substr(0,ss.indexOf("分"));
                ss=ss.substr(ss.indexOf("分")+1);
        }
        if(ss.indexOf("秒")>=0){
                s=ss.substr(0,ss.indexOf("秒"));
        }
        s++;
        if(s>=60)
        {
                s=s-60;
                m++;
        }
        if(m>=60){
                m=m-60;
                h++;
        }
        if(h>=24){
                h=h-24;
                d++;
        }
        ss="";
        if(d>0)ss=d+"天";
        if(h>0) ss=ss+h+"小时";
        if(m>0) ss=ss+m+"分";
        if(s>0) ss=ss+s+"秒";
        timer1.innerText=ss;
}

    function openLogout() {
        if (window.name != 'hotspot_status') return true;
        open('http://10.56.0.1/logout', 'hotspot_logout', 'toolbar=0,location=0,directories=0,status=0,menubars=0,resizable=1,width=280,height=250');
        window.close();
        return false;
    }
//' failed: org.mozilla.javascript.EcmaError: TypeError: Cannot find function setInterval in object [object Window]. (httpunit#1)
        at com.meterware.httpunit.javascript.ScriptingEngineImpl.handleScriptException(ScriptingEngineImpl.java:64)
        at com.meterware.httpunit.javascript.ScriptingEngineImpl.runScript(ScriptingEngineImpl.java:95)
        at com.meterware.httpunit.scripting.ScriptableDelegate.runScript(ScriptableDelegate.java:8
        at com.meterware.httpunit.parsing.NekoDOMParser.runScript(NekoDOMParser.java:151)
        at com.meterware.httpunit.parsing.ScriptFilter.getTranslatedScript(ScriptFilter.java:150)
        at com.meterware.httpunit.parsing.ScriptFilter.endElement(ScriptFilter.java:131)
        at org.cyberneko.html.HTMLTagBalancer.callEndElement(HTMLTagBalancer.java:1132)
        at org.cyberneko.html.HTMLTagBalancer.endElement(HTMLTagBalancer.java:1034)
        at org.cyberneko.html.filters.DefaultFilter.endElement(DefaultFilter.java:206)
        at org.cyberneko.html.filters.NamespaceBinder.endElement(NamespaceBinder.java:329)
        at org.cyberneko.html.HTMLScanner$ContentScanner.scanEndElement(HTMLScanner.java:305
        at org.cyberneko.html.HTMLScanner$ContentScanner.scan(HTMLScanner.java:1994)
        at org.cyberneko.html.HTMLScanner.scanDocument(HTMLScanner.java:907)
        at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:499)
        at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:452)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
        at com.meterware.httpunit.parsing.NekoHTMLParser.parse(NekoHTMLParser.java:48)
        at com.meterware.httpunit.HTMLPage.parse(HTMLPage.java:271)
        at com.meterware.httpunit.WebResponse.getReceivedPage(WebResponse.java:1301)
        at com.meterware.httpunit.WebResponse.getFrames(WebResponse.java:1285)
        at com.meterware.httpunit.WebResponse.getFrameRequests(WebResponse.java:1024)
        at com.meterware.httpunit.FrameHolder.updateFrames(FrameHolder.java:179)
        at com.meterware.httpunit.WebWindow.updateFrameContents(WebWindow.java:315)
        at com.meterware.httpunit.WebClient.updateFrameContents(WebClient.java:526)
        at com.meterware.httpunit.WebWindow.updateWindow(WebWindow.java:201)
        at com.meterware.httpunit.WebWindow.getSubframeResponse(WebWindow.java:183)
        at com.meterware.httpunit.WebWindow.getResponse(WebWindow.java:158)
        at com.meterware.httpunit.WebResponse$Scriptable.setLocation(WebResponse.java:888)
        at com.meterware.httpunit.javascript.JavaScript$Window.setLocation(JavaScript.java:343)
        at com.meterware.httpunit.javascript.JavaScript$Location.jsSet_href(JavaScript.java:590)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:161)
        ... 22 more
com.meterware.httpunit.ScriptException: Event 'startClock()' failed: org.mozilla.javascript.WrappedException: Wrapped com.meterware.httpunit.ScriptException: Script 'var intervaltime;
intervaltime=window.setInterval(onTimer,1000);
function onTimer()
{
        var ss,d=0,h=0,m=0,s=0;
        ss=timer1.innerText;
        if(ss.indexOf("天")>=0){
                d=ss.substr(0,ss.indexOf("天"));
                ss=ss.substr(ss.indexOf("天")+1);
        }
        if(ss.indexOf("h")>=0){
                h=ss.substr(0,ss.indexOf("小时"));
                ss=ss.substr(ss.indexOf("小时")+1);
        }
        if(ss.indexOf("分")>=0){
                m=ss.substr(0,ss.indexOf("分"));
                ss=ss.substr(ss.indexOf("分")+1);
        }
        if(ss.indexOf("秒")>=0){
                s=ss.substr(0,ss.indexOf("秒"));
        }
        s++;
        if(s>=60)
        {
                s=s-60;
                m++;
        }
        if(m>=60){
                m=m-60;
                h++;
        }
        if(h>=24){
                h=h-24;
                d++;
        }
        ss="";
        if(d>0)ss=d+"天";
        if(h>0) ss=ss+h+"小时";
        if(m>0) ss=ss+m+"分";
        if(s>0) ss=ss+s+"秒";
        timer1.innerText=ss;
}

    function openLogout() {
        if (window.name != 'hotspot_status') return true;
        open('http://10.56.0.1/logout', 'hotspot_logout', 'toolbar=0,location=0,directories=0,status=0,menubars=0,resizable=1,width=280,height=250');
        window.close();
        return false;
    }
//' failed: org.mozilla.javascript.EcmaError: TypeError: Cannot find function setInterval in object [object Window]. (httpunit#1) (httpunit#2)
        at com.meterware.httpunit.javascript.ScriptingEngineImpl.handleScriptException(ScriptingEngineImpl.java:64)
        at com.meterware.httpunit.javascript.ScriptingEngineImpl.doEventScript(ScriptingEngineImpl.java:135)
        at com.meterware.httpunit.scripting.ScriptableDelegate.doEventScript(ScriptableDelegate.java:70)
        at com.meterware.httpunit.WebResponse$Scriptable.load(WebResponse.java:819)
        at com.meterware.httpunit.javascript.JavaScript.load(JavaScript.java:80)
        at com.meterware.httpunit.javascript.JavaScriptEngineFactory.load(JavaScriptEngineFactory.java:62)
        at com.meterware.httpunit.RequestContext.runScripts(RequestContext.java:44)
        at com.meterware.httpunit.WebWindow.getResponse(WebWindow.java:159)
        at com.meterware.httpunit.WebWindow.getResponse(WebWindow.java:125)
        at com.meterware.httpunit.WebClient.getResponse(WebClient.java:96)
        at WebLogin.main(WebLogin.java:17)

论坛徽章:
0
5 [报告]
发表于 2010-01-01 20:02 |只看该作者
这个好像跟JAVA没关系,我建议你弄个VB什么的,更好点儿.

论坛徽章:
0
6 [报告]
发表于 2010-01-04 15:49 |只看该作者
页面采用MD5进行加密了,在./md5.js这个文件里,如果你能破解它这个文件,进行相应加密之后再提交密码就能登陆了。

论坛徽章:
0
7 [报告]
发表于 2010-01-04 23:02 |只看该作者
各位,我在前面的帖子里已经说了,我已经可以登录了,只是不想显示那些输出信息,怎么弄?

论坛徽章:
0
8 [报告]
发表于 2010-01-08 09:58 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP