`

如果通过JAVA重启路由器和获取IP地址

阅读更多

1、路由器的用户名和密码我是知道,这里不是hacker技术,是为了方便

2、借助了Fiddler这个工具来对路由器访问的请求进行解析

3、通过Fiddler这个工具让我们了解到DI-504应用的是Basic这个认证方式

4、参考代码:

package com.van.client;

import java.io.IOException;  
import java.io.InputStream;
import java.net.HttpURLConnection;  
import java.net.MalformedURLException;  
import java.net.URL;  
/**
 * 
 * @author van
 *
 */  
public class Router {  
    private static final String USERNAME_PASSWORD = "admin:a";  
    public Router() {  
        this.disconnect();  
    }  
    
    //http://192.168.3.1/do_cmd.htm?CMD=SYS_CONF&CCMD=0&nowait=1重启路由器
    private void disconnect() {  
        String urlStr = "http://192.168.3.1/info.htm";  
        this.runCgi(urlStr, USERNAME_PASSWORD);  
    }  
  
    private void runCgi(String urlStr, String authorizationStr) {  
        URL xUrl = null;  
        HttpURLConnection xHuc = null;  
        try {  
            xUrl = new URL(urlStr);  
            if (xUrl != null) {  
                xHuc = (HttpURLConnection) xUrl.openConnection();  
                if (xHuc != null) {  
                    if (!"".equals(authorizationStr)) {  
                        xHuc.setRequestProperty("Authorization", "Basic "  
                                + Base64.encodeBytes(USERNAME_PASSWORD  
                                        .getBytes()));  
                    }   
                    xHuc.setRequestProperty("Content-Length", "0");  
                    xHuc.setRequestProperty("Content-Type",  
                            "application/x-www-form-urlencoded");  
                    xHuc.connect();  
                    String aa = xHuc.getResponseMessage();  
                    ////下面这些是用来获取IP地址的
                    InputStream in=xHuc.getInputStream();
                    int chint=0;
                    StringBuffer sb=new StringBuffer();
                    while((chint=in.read())!=-1){
                    	sb.append((char)chint);
                    }
                    String html=sb.toString();
                    int first=html.indexOf("wanIP=\"");
                    String content=html.substring(459,471);
                    System.out.println(content);  
                }  
            }  
        } catch (MalformedURLException e) {  
            e.printStackTrace();  
        } catch (IOException e) {  
            e.printStackTrace();  
        } finally {   
            if (xHuc != null) {  
                xHuc.disconnect();  
            }  
        }  
    }  
    public static void main(String[] args) {  
        new Router();  
    }
  
}  

  其中文中引用到的Base64的java文件在插件里面,还有一些API说明

分享到:
评论
1 楼 javaxiake 2014-07-31  
不知道怎么用哪个base64这个文件啊  

相关推荐

    java 重启 路由器 DI-604

    1. **连接设置**:确定路由器的IP地址和管理端口,这通常可以通过路由器的Web界面找到。 2. **身份验证**:大部分路由器需要用户名和密码进行身份验证。这可以通过HTTP的基本认证机制实现,将用户名和密码Base64编码...

    java代码实现tplink路由器重启及连接断开功能

    以上就是使用Java通过HttpClient实现TPLink路由器重启和连接断开功能所涵盖的主要知识点。实际的"restartRoute"代码应该包含了这些概念的具体实现,通过阅读和理解代码,可以更深入地学习和实践这些技术。

    C# Java C++ C .Net 重启路由器的方法

    1. **建立网络连接**:使用编程语言中的网络库(如C#的`System.Net`,Java的`java.net`,C++的`Winsock`)创建一个HTTP客户端,连接到路由器的IP地址和管理端口。 2. **身份验证**:大多数路由器需要用户名和密码...

    路由器重启加换IP源码

    在IT领域,这样的功能可能用于自动化网络管理,尤其是在需要频繁更改IP地址或者定时重启路由器以解决网络问题的场景。 描述中的信息简洁,但我们可以从中推测出几个关键知识点: 1. **路由器控制**:实现对路由器...

    TPlink换IP源码

    总的来说,"TPlink换IP源码"是用于自动化更改TP-Link路由器IP地址的程序,它涉及网络通信、身份验证和路由器配置管理等多个IT领域的重要概念。这样的源码对于网络管理员、自动化测试人员以及对网络设备编程感兴趣的...

    易语言重启路由器源码-易语言

    7. **用户交互**:程序可能需要设计友好的用户界面,让用户输入路由器的IP地址、端口、登录凭据,并显示操作结果。 通过学习和理解这个源码,开发者不仅可以掌握易语言的基本编程技巧,还能了解到网络通信和设备...

    老电脑变路由器.pdf

    在多人共享宽带的情况下,如果没有路由器的存在,所有人都将使用同一IP地址上网,这通常不被宽带服务商所允许。因此,需要一台服务器作为中介,管理数据包的传输,让每个人都能通过不同的IP地址连接互联网。然而,...

    重启电脑小工具

    它可能通过读取预设的配置文件或与路由器进行交互来改变电脑的IP地址,同时适应DHCP和静态IP的网络环境。 总的来说,这个“重启电脑小工具”是一个包含源代码的实用程序,不仅提供了方便的计算机重启功能,还可能...

    腾达路由安装问题

    - 对于动态 IP 上网方式,如果仍然无法上网,除了检查 IP 冲突和 MAC 地址外,还需要确保路由器获取到的 IP 地址与无路由器时电脑获取的 IP 相同。如果不一致,可能需要恢复出厂设置并重新配置。 8. **故障排查...

    java开源包4

    ftp4j提供多种方式连接到远程FTP服务器包括:通过 TCP/IP直接连接,通过FTP代理、HTTP代理、SOCKS4/4a代理和SOCKS5代理连接,通过SSL安全连接。 Java的命令行进度条 JCmdLineProgess JCmdLineProgess 是一个 Java ...

    java开源包101

    ftp4j提供多种方式连接到远程FTP服务器包括:通过 TCP/IP直接连接,通过FTP代理、HTTP代理、SOCKS4/4a代理和SOCKS5代理连接,通过SSL安全连接。 Java的命令行进度条 JCmdLineProgess JCmdLineProgess 是一个 Java ...

    java开源包6

    ftp4j提供多种方式连接到远程FTP服务器包括:通过 TCP/IP直接连接,通过FTP代理、HTTP代理、SOCKS4/4a代理和SOCKS5代理连接,通过SSL安全连接。 Java的命令行进度条 JCmdLineProgess JCmdLineProgess 是一个 Java ...

    java开源包9

    ftp4j提供多种方式连接到远程FTP服务器包括:通过 TCP/IP直接连接,通过FTP代理、HTTP代理、SOCKS4/4a代理和SOCKS5代理连接,通过SSL安全连接。 Java的命令行进度条 JCmdLineProgess JCmdLineProgess 是一个 Java ...

    java开源包5

    ftp4j提供多种方式连接到远程FTP服务器包括:通过 TCP/IP直接连接,通过FTP代理、HTTP代理、SOCKS4/4a代理和SOCKS5代理连接,通过SSL安全连接。 Java的命令行进度条 JCmdLineProgess JCmdLineProgess 是一个 Java ...

    java开源包8

    ftp4j提供多种方式连接到远程FTP服务器包括:通过 TCP/IP直接连接,通过FTP代理、HTTP代理、SOCKS4/4a代理和SOCKS5代理连接,通过SSL安全连接。 Java的命令行进度条 JCmdLineProgess JCmdLineProgess 是一个 Java ...

    java开源包10

    ftp4j提供多种方式连接到远程FTP服务器包括:通过 TCP/IP直接连接,通过FTP代理、HTTP代理、SOCKS4/4a代理和SOCKS5代理连接,通过SSL安全连接。 Java的命令行进度条 JCmdLineProgess JCmdLineProgess 是一个 Java ...

    java开源包1

    ftp4j提供多种方式连接到远程FTP服务器包括:通过 TCP/IP直接连接,通过FTP代理、HTTP代理、SOCKS4/4a代理和SOCKS5代理连接,通过SSL安全连接。 Java的命令行进度条 JCmdLineProgess JCmdLineProgess 是一个 Java ...

    java开源包3

    ftp4j提供多种方式连接到远程FTP服务器包括:通过 TCP/IP直接连接,通过FTP代理、HTTP代理、SOCKS4/4a代理和SOCKS5代理连接,通过SSL安全连接。 Java的命令行进度条 JCmdLineProgess JCmdLineProgess 是一个 Java ...

    Java资源包01

    ftp4j提供多种方式连接到远程FTP服务器包括:通过 TCP/IP直接连接,通过FTP代理、HTTP代理、SOCKS4/4a代理和SOCKS5代理连接,通过SSL安全连接。 Java的命令行进度条 JCmdLineProgess JCmdLineProgess 是一个 Java ...

    思科CCNA实验大全1

    - 执行`reload`命令可以重启路由器,重启后路由器将从NVRAM中加载启动配置文件。此时,路由器提示符将变为`Router>`,表示路由器正在重新启动过程中,还未完全启动进入用户执行模式。 #### 三、使用`show version`...

Global site tag (gtag.js) - Google Analytics