网桥实现单网卡双网口

第一步 frameworks/opt/net/ethernet

diff --git a/java/com/android/server/ethernet/EthernetNetworkFactory.java b/java/com/android/server/ethernet/EthernetNetworkFactory.java
index f70e885..003f1df 100644
--- a/java/com/android/server/ethernet/EthernetNetworkFactory.java
+++ b/java/com/android/server/ethernet/EthernetNetworkFactory.java
@@ -60,6 +60,21 @@
 import java.net.InetAddress;
 import java.util.concurrent.ConcurrentHashMap;
 
+
+import java.io.File;
+import java.io.BufferedReader;
+import java.io.FileInputStream;
+import java.io.InputStreamReader;
+import android.os.SystemProperties;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.text.DecimalFormat;
+import android.os.Handler;
+import android.os.RemoteException;
+import android.os.Message;
+import android.text.TextUtils;
+
 /**
  * {@link NetworkFactory} that represents Ethernet networks.
  *
@@ -193,6 +208,9 @@
 
     /** Returns true if state has been modified */
     boolean updateInterfaceLinkState(String ifaceName, boolean up) {
+if(ifaceName.equals("eth0")||ifaceName.equals("eth1")){
+netSettingeth(ifaceName,up);
+}
         if (!mTrackingInterfaces.containsKey(ifaceName)) {
             return false;
         }
@@ -297,12 +315,43 @@
         }
         return dns;
     }
-
+boolean isclickFirst = true ;
     void updateIpConfiguration(String iface, IpConfiguration ipConfiguration) {
         NetworkInterfaceState network = mTrackingInterfaces.get(iface);
         if (network != null) {
             network.setIpConfig(ipConfiguration);
             network.reconnect();
+            if(getEthernetCarrierState(iface)==1){
+                Log.w(TAG, "Ethernet line is  exists  iface="+iface);
+                 //network.reconnect();
+                //network.start();
+
+               /* if(iface.equals("eth0")){
+                    if(getEthernetCarrierState("eth1")==1){
+                        NetworkInterfaceState othernetwork = mTrackingInterfaces.get("eth1");
+                        Log.w(TAG, "329 Ethernet line is  exists  othernetwork="+othernetwork);
+                        if (othernetwork != null) {
+                            //othernetwork.reconnect();
+                        }
+                    }else {
+                       // network.reconnect();
+
+                    }
+
+                }else if(iface.equals("eth1")){
+                    if(getEthernetCarrierState("eth0")==1){
+                        NetworkInterfaceState othernetwork = mTrackingInterfaces.get("eth0");
+                        Log.w(TAG, "339 Ethernet line is  exists  othernetwork="+othernetwork);
+                        if (othernetwork != null) {
+                            //othernetwork.reconnect();
+                        }
+                    }else {
+                        //network.reconnect();
+
+                    }
+                }*/
+            }
+
         }
     }
 
@@ -336,6 +385,38 @@
         return network;
     }
 
+
+ private String ReadFromFile(File file) {
+        if((file != null) && file.exists()) {
+            try {
+                FileInputStream fin= new FileInputStream(file);
+                BufferedReader reader= new BufferedReader(new InputStreamReader(fin));
+                String flag = reader.readLine();
+                fin.close();
+                return flag;
+            } catch(Exception e) {
+                e.printStackTrace();
+            }
+        }
+        return null;
+    }
+

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
桥接是将两个网络接口连接在一起,使其可以同时工作的一种技术。在Win10中实现网口桥接,可以使用以下脚本: 首先,打开一个文本编辑器(如记事本)并输入以下脚本: ```batch @echo off setlocal enabledelayedexpansion set NIC1=第一个网络接口的名称 set NIC2=第二个网络接口的名称 :: 创虚拟网桥 NETSH BRIDGE SET LOGGERLEVEL DISABLED > nul NETSH INTERFACES SET BRIDGE BRIDGE=Bridge set wrench Mtu=10000 store=persistent > nul :: 添加需要桥接的接口 NETSH INTERFACE SET INTERFACE NAME="%NIC1%" ADMIN=DISABLED > nul NETSH INTERFACE SET INTERFACE NAME="%NIC2%" ADMIN=DISABLED > nul NETSH BRIDGE SET ADAPTER NAME="%NIC1%" ADD > nul NETSH BRIDGE SET ADAPTER NAME="%NIC2%" ADD > nul :: 启用网络接口 NETSH INTERFACE SET INTERFACE NAME="%NIC1%" ADMIN=ENABLED > nul NETSH INTERFACE SET INTERFACE NAME="%NIC2%" ADMIN=ENABLED > nul :: 配置IP地址(可选) NETSH INTERFACE IP SET ADDRESS NAME="Bridge set wrench" SOURCE=STATIC addr=192.168.0.1 mask=255.255.255.0 > nul NETSH INTERFACE IP SET ADDRESS NAME="%NIC1%" SOURCE=STATIC addr=192.168.0.2 mask=255.255.255.0 > nul NETSH INTERFACE IP SET ADDRESS NAME="%NIC2%" SOURCE=STATIC addr=192.168.0.3 mask=255.255.255.0 > nul echo 桥接网络接口完成! pause ``` 请将上述脚本中的`第一个网络接口的名称`和`第二个网络接口的名称`替换为实际的网络接口名称。这两个名称可以在控制面板的网络和Internet设置中找到。 保存脚本文件,并将其扩展名更改为`.bat`,例如`bridge.bat`。 然后,以管理员权限运行此脚本文件。脚本将创一个虚拟网桥,并将指定的两个网络接口添加到虚拟网桥中。如果需要配置IP地址,请按照自己需求修改脚本中的IP地址。 脚本运行完成后,在网络设置中,您应该能够看到一个名为“Bridge set wrench”的网络适配器,网口将会桥接。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值