精华内容
下载资源
问答
  • 安卓9.0设置以太网静态IP地址

    千次阅读 热门讨论 2019-08-14 19:41:37
    前言:因为项目需要设置安卓9.0系统的以太网静态ip地址,于是网上搜索相关资料。9.0系统以太网设置静态ip有关的,只有Github上有个MTK开发人员的分享,github链接:...

    前言:因为项目需要设置安卓9.0系统的以太网静态ip地址,于是网上搜索相关资料。9.0系统以太网设置静态ip有关的,只有Github上有个MTK开发人员的分享,github链接:https://github.com/Dufre/Android-Settings-Ethernet,patch是在系统设置中加上以太网设置,用过后发现设置静态IP可以成功,但是无法连外网,解决方法是将 0001-Ethernet-Add-Static-IP-Settiings.patch 中的两个注释去掉,改成如下,且在设置的时候一定要配置正确的网关和DNS。

    +        mStaticIpConfiguration.gateway=gatewayAddr;
    +        mStaticIpConfiguration.dnsServers.add(dnsAddr);

     打patch方式,比方说想打0001-Ethernet-Add-Static-IP-Settiings.patch,那么到/packages/apps/Settings目录,这个目录可以通过看patch文件中类似如下代码中a/b所在目录确认。

    diff --git a/AndroidManifest.xml b/AndroidManifest.xml
    index 4456aa0..ea33f8a 100644
    --- a/AndroidManifest.xml
    +++ b/AndroidManifest.xml
    
    // 进入到a所在目录即可。

    然后执行patch -p1 < patch文件绝对路径,p后面是数字1,即可。

    0001-Ethernet-IP-Add-Framework-Interface.patch这个patch到/frameworks/base目录导入。

    0001-Ethernet-IP-Add-Framework-Function.patch这个patch到/frameworks/opt/net/ethernet目录导入。

    接下来讲解如何通过一个方法来实现9.0以太网设置。

    首先:在应用的清单文件中授权网络权限,主要应该是如下几个。同时

    sharedUserId设置成"android.uid.system"。
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL"/>
    <uses-permission android:name="android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS"/>

    其次:导入framework.jar,因为用到的类都是在framework中的。而且我测试的时候也使用了platform签名。

    最后:终极方法如下,反射方式获取EthernetManager的实例参考 https://blog.csdn.net/aaa1050070637/article/details/79769788

       private static final String TAG = "EthernetUtils";
        /**
         * @param context use Activity or Service context
         * @param ipAddress ip address: like 192.168.1.168
         * @param mode : STATIC or DHCP, set static or dhcp ip mode
         * @param netmask ip mask, like 255.255.255.0
         * @param gateway gateway, like 192.168.1.1
         * @param dns1 dns 1
         * @param dns2 dns 2, if mode=static, then can use "" or null
         *   eg. dhcp mode: setEthernetIP(ApplicationContext, "DHCP", "", "", "", "", "");
         *         static mode: setEthernetIP(ApplicationContext, "STATIC",
         *                     "192.168.1.168", "255.255.255.0",
         *                     "192.168.1.1", "114.114.114.114", "8.8.8.8");
         *  for android 9.0
         * */
        public static void setEthernetIP(Context context, String mode, String ipAddress, String netmask,
                                         String gateway, String dns1, String dns2) {
            if (context == null || (!"STATIC".equals(mode) && !"DHCP".equals(mode))) {
                Log.d(TAG, " setEthernetIP failed, param incorrect context=" + context + ", mode=" + mode);
                return;
            }
    
            try {
                // get EthernetManager instance by reflect @{
                Class<?> ethernetManagerClass = Class
                        .forName("android.net.EthernetManager");
                Class<?> iEthernetManagerClass = Class
                        .forName("android.net.IEthernetManager");
                // 获取ETHERNET_SERVICE参数
                String ETHERNET_SERVICE = (String) Context.class.getField(
                        "ETHERNET_SERVICE").get(null);
                // 获取ethernetManager服务对象
                Object ethernetManager = context.getSystemService(ETHERNET_SERVICE);
                // 获取在EthernetManager中的抽象类mService成员变量
                Field mService = ethernetManagerClass.getDeclaredField("mService");
                // 修改private权限
                mService.setAccessible(true);
                // 获取抽象类的实例化对象
                Object mServiceObject = mService.get(ethernetManager);
                Object ethernetManagerInstance = ethernetManagerClass
                        .getDeclaredConstructor(Context.class,
                                iEthernetManagerClass).newInstance(context,
                                mServiceObject);
                EthernetManager mEthManager = (EthernetManager) ethernetManagerInstance;
                // @}
    
                String[] ifaces = mEthManager.getAvailableInterfaces();
                if (ifaces.length <= 0) {
                    Log.e(TAG, " setEthernetIP failed ifaces.length <= 0");
                    return;
                }
                String mInterfaceName = ifaces[0];
                Log.d(TAG, " setEthernetIP mInterfaceName=" + mInterfaceName);
                if ("DHCP".equals(mode)) {
                    Log.i(TAG, " setEthernetIP  set dhcp started");
                    IpConfiguration dhcpConfiguration = new IpConfiguration(IpConfiguration.IpAssignment.DHCP,
                            IpConfiguration.ProxySettings.NONE, null, null);
                    dhcpConfiguration.setIpAssignment(IpConfiguration.IpAssignment.DHCP);
                    mEthManager.setConfiguration(mInterfaceName, dhcpConfiguration);
                    return;
                }
    
                if (TextUtils.isEmpty(ipAddress)
                        || TextUtils.isEmpty(netmask) || TextUtils.isEmpty(gateway)
                        || TextUtils.isEmpty(dns1)) {
                    Log.e(TAG, "setEthernetIP error has some param is null ipAddress=" + ipAddress
                            + ", netmask=" + netmask + ", gateway=" + gateway
                            + ", dns1=" + dns1 + ", dns2=" + dns2);
                    return;
                }
                StaticIpConfiguration mStaticIpConfiguration = new StaticIpConfiguration();
                int prefixLength = maskStr2InetMask(netmask);
                InetAddress inetAddr = null;
                InetAddress gatewayAddr = getIPv4Address(gateway);
                InetAddress dnsAddr = getIPv4Address(dns1);
    
                if (TextUtils.isEmpty(ipAddress)) {
                    inetAddr = NetUtils.getLocalIPAddress();
                } else {
                    String[] ipStr = ipAddress.split("\\.");
                    byte[] ipBuf = new byte[4];
                    for (int i = 0; i < 4; i++) {
                        ipBuf[i] = (byte) (Integer.parseInt(ipStr[i]) & 0xff);
                    }
                    try {
                        inetAddr = InetAddress.getByAddress(ipBuf);
                        Log.d(TAG, "setEthernetIP  address correct inetAddr=" + inetAddr);
                    } catch (UnknownHostException e) {
                        e.printStackTrace();
                    }
                }
    
                if (inetAddr == null || inetAddr.getAddress().toString().isEmpty()
                        || prefixLength == 0 || gatewayAddr.toString().isEmpty()
                        || dnsAddr == null || dnsAddr.toString().isEmpty()) {
                    Log.d(TAG, " setEthernetIP  address incorrect inetAddr=" + inetAddr);
                    return;
                }
    
                Class<?> linkAddressClass = null;
                linkAddressClass = Class.forName("android.net.LinkAddress");
                Class[] cl = new Class[]{InetAddress.class, int.class};
                Constructor cons = null;
                //取得所有构造函数
                try {
                    cons = linkAddressClass.getConstructor(cl);
                } catch (NoSuchMethodException e) {
                    e.printStackTrace();
                }
                //给传入参数赋初值
                Object[] x = {inetAddr, prefixLength};
                try {
                    mStaticIpConfiguration.ipAddress = (LinkAddress) cons.newInstance(x);
                    Log.d(TAG, " setEthernetIP mStaticIpConfiguration.ipAddress=" + mStaticIpConfiguration.ipAddress);
                } catch (InstantiationException e) {
                    e.printStackTrace();
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                } catch (InvocationTargetException e) {
                    e.printStackTrace();
                }
    
                mStaticIpConfiguration.gateway = gatewayAddr;
                mStaticIpConfiguration.dnsServers.add(dnsAddr);
                if (!dns2.isEmpty())
                    mStaticIpConfiguration.dnsServers.add(getIPv4Address(dns2));
    
                Log.d(TAG, " setEthernetIP mStaticIpConfiguration  ====" + mStaticIpConfiguration
                        + ", inetAddr=" + inetAddr + ", mEthManager=" + mEthManager);
    
                IpConfiguration ipConfiguration = new IpConfiguration(IpConfiguration.IpAssignment.STATIC,
                        IpConfiguration.ProxySettings.NONE, mStaticIpConfiguration, null);
                ipConfiguration.setIpAssignment(IpConfiguration.IpAssignment.STATIC);
                ipConfiguration.setStaticIpConfiguration(mStaticIpConfiguration);
                mEthManager.setConfiguration(mInterfaceName, ipConfiguration);
            } catch (Exception e) {
                Log.e(TAG, "setEthernetIP error e=" + e.getMessage(), e);
            }
        }

    注意事项: 该方法最好在Activity或者Fragment中执行,第一个参数使用活动、碎片或服务的context,否则容易报线程不对或初始化以太网管理器的错误,且执行完后需要重启系统才能生效。

    android 9.0 GO系统 framework.jar 见资源:https://download.csdn.net/download/zzhceo/11548681

    2019.12.12补充github工程地址:https://github.com/zzhceo/EthernetStaticIp,欢迎大家点赞收藏。

     

    展开全文
  • 在做android设备时候有设置设备的静态IP,因为这个方法是系统隐藏方法,而且还是9.0的系统目前测试...原博客:安卓9.0设置以太网静态IP地址 博客来源地址:https://blog.csdn.net/zzhceo/article/details/99596435 ...

    在做android设备时候有设置设备的静态IP,因为这个方法是系统隐藏方法,而且还是9.0的系统目前测试验证一下博客的方法可行。

    原博客:安卓9.0设置以太网静态IP地址
    博客来源地址:https://blog.csdn.net/zzhceo/article/details/99596435

    以上只是设置没有获取已经设置的信息,故自己参照以上博客,实现了获取已经设置好的静态IP信息。

    /**
         * 获取静态信息
         */
        public static Map<String, String> getEthernnetIp(Context context) {
            Map<String, String> ipMaps = new HashMap<>(16);
            try {
                String mInterfaceName = "eth0";
                EthernetManager mEthManager = getEthernetManager(context);
                if (mEthManager == null) {
                    return ipMaps;
                }
                String assignMent = mEthManager.getConfiguration(mInterfaceName).ipAssignment.name();
                // if assignMent is dhcp, no need repeat set
                if ("DHCP".equals(assignMent)) {
                    Log.d(TAG, " setEthernetIP mode == assignment = DHCP, no need repeat set");
                    return ipMaps;
                }
                IpConfiguration configuration = mEthManager.getConfiguration(mInterfaceName);
                if (configuration != null) {
                    StaticIpConfiguration staticIpConfiguration = configuration.getStaticIpConfiguration();
                    if (staticIpConfiguration != null) {
                        ArrayList<InetAddress> dnsServers = staticIpConfiguration.dnsServers;
                        InetAddress gateway = staticIpConfiguration.gateway;
                        LinkAddress ipAddress = staticIpConfiguration.ipAddress;
    
                        if (gateway != null) {
                            ipMaps.put("gateway", gateway.getHostAddress());
                        }
                        if (ipAddress != null) {
                            InetAddress address = ipAddress.getAddress();
                            if (address != null) {
                                ipMaps.put("ip", address.getHostAddress());
                            }
    
    //                      int prefixLength = ipAddress.getPrefixLength();
                            String s = ipAddress.toString();
                            String mask = getMask(s);
                            ipMaps.put("mask", mask);
                        }
    
                        if (dnsServers != null && dnsServers.size() > 1) {
                            ipMaps.put("dns", dnsServers.get(0).getHostAddress());
                        }
    
                        Log.d(TAG, ipMaps.toString());
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return ipMaps;
        }
    

    然后把,反射进行抽取

     private static EthernetManager getEthernetManager(Context context) {
            // get EthernetManager instance by reflect @{
            Object ethernetManagerInstance = null;
            try {
                Class<?> ethernetManagerClass = Class.forName("android.net.EthernetManager");
                Class<?> iEthernetManagerClass = Class.forName("android.net.IEthernetManager");
                // 获取ETHERNET_SERVICE参数
                String ETHERNET_SERVICE = (String) Context.class.getField("ETHERNET_SERVICE").get(null);
                // 获取ethernetManager服务对象
                Object ethernetManager = context.getSystemService(ETHERNET_SERVICE);
                // 获取在EthernetManager中的抽象类mService成员变量
                Field mService = ethernetManagerClass.getDeclaredField("mService");
                // 修改private权限
                mService.setAccessible(true);
                // 获取抽象类的实例化对象
                Object mServiceObject = mService.get(ethernetManager);
                ethernetManagerInstance = ethernetManagerClass
                        .getDeclaredConstructor(Context.class, iEthernetManagerClass).newInstance(context, mServiceObject);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return (EthernetManager) ethernetManagerInstance;
        }
    

    子网掩码反转代码:

     /**
         * 数值子网掩码转换成IP的格式
         */
        public static String getMask(String addr) {
            try {
                String[] parts = addr.split("/");
                int prefix;
                if (parts.length < 2) {
                    prefix = 0;
                } else {
                    prefix = Integer.parseInt(parts[1]);
                }
                int mask = 0xffffffff << (32 - prefix);
    
                byte[] bytes = new byte[]{
                        (byte) (mask >>> 24), (byte) (mask >> 16 & 0xff), (byte) (mask >> 8 & 0xff), (byte) (mask & 0xff)};
    
                InetAddress netAddr = InetAddress.getByAddress(bytes);
    
                return netAddr.getHostAddress();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return "";
        }
    
    展开全文
  • 1、设置成系统应用  android:sharedUserId="android.uid.system" 2、通过反射机制,使用EthernetManager、EthernetDevInfo对象 转载于:https://my.oschina.net/u/593225/blog/789372

    1、设置成系统应用

        android:sharedUserId="android.uid.system"

    2、通过反射机制,使用EthernetManager、EthernetDevInfo对象

    转载于:https://my.oschina.net/u/593225/blog/789372

    展开全文
  • 出于某种原因,让我们说您要将IP地址从ent12移到ent14。 以下是您必须完成的步骤: 保存所有有关ent12的信息。 如果在此以太网上定义了默认路由,则也要保存它。 保存ent12的所有路由和路由信息。 请注意,在...

    出于某种原因,让我们说您要将IP地址从ent12移到ent14。 以下是您必须完成的步骤:

    1. 保存所有有关ent12的信息。 如果在此以太网上定义了默认路由,则也要保存它。
    2. 保存ent12的所有路由和路由信息。 请注意,在我们的情况下,ent12是用于登录服务器的主要以太网。 因此,接下来的步骤必须在控制台上完成,否则,您将丢失会话,并且只能从控制台上登录。
    3. 关闭并分离ent12(此时,您的用户将无法登录此服务器)。
    4. 在ent14上定义IP地址。
    5. 如果是在ent12上定义的,则在ent14上定义默认路由。 此时,某些用户也许可以登录,但有些用户可能要等到完成下一步才能登录。
    6. 在ent14上重新创建路由(完成此步骤后,用户应该可以登录)。
    7. 如果需要,请删除ent12。

    本文的“ 使用脚本”部分可帮助您最大程度地减少停机时间,尤其是在ent12上有很多路由的情况下。 现在让我们遍历这些步骤中的每一个。

    步骤1:保存所有有关ent12的信息

    您可以使用smit chinet保存ent12的定义。 在此示例中,已使用ent0。 ent12的输出将类似于ent0的输出。 图1显示了ent0的输出。

    图1. smit chinet输出

    保存此页面上显示的信息,以备日后在ent14上定义时使用。 以下是此页面上最重要的信息:

    Network Interface Name                             en0
    INTERNET ADDRESS (dotted decimal)                  [1.22.333.44]
    Network MASK (hexadecimal or dotted decimal)       [255.255.255.0]

    如果运行命令, netstat -rn | grep default netstat -rn | grep default ,您将获得以下条目:

    default   222.333.55.1    UG        74   862520865   en12

    此项表明默认网关在en12上定义。 如前所述,这并不奇怪,因为ent12是登录到该服务器的主要以太网。 您需要保存网关222.333.55.1 ,以便稍后在ent14上对其进行定义。

    步骤2:保存ent12的所有路由和路由信息

    这部分很容易。 您必须运行netstat -rn命令。 有关输出,请参见图2。

    图2. netstat -rn命令的输出

    您可以使用netstat –rn命令中的以下行在ent14上创建此路由。

    222.333.55/26   222.333.55.16    UHSb        0   0   en12

    您需要重新创建这些路由,否则某些AIX服务器可能无法访问该服务器。 在稍后的“ 步骤6:在ent14上创建以太网路由”部分中,我将向您展示如何在ent14上创建此路由。

    步骤3:放下并分离ent12

    您必须在控制台上才能关闭和分离ent12,否则您将丢失会话。 您的用户将无法登录到服务器,因为ent12是用于登录的主要以太网,直到您完成对ent14的重新定义并使其与路由一起可用。 要关闭和分离ent12,必须使用smit chinet 将当前状态从上更改为分离 。 分离ent12后,它就变得无法使用,并且使用netstat -rn命令时,它的所有路由都将不再可用,并且不会显示。

    步骤4:在ent14上定义IP地址

    您必须使用ent12的信息来定义ent14上的IP地址。 您可以运行smit chinet来定义ent14。 使用您在步骤1中保存的ent12的IP地址和网络掩码。

    步骤5:在ent14上定义默认网关

    您可以使用smit tcpip选择“ 最低配置和启动” ,然后使用ent14在ent14上定义默认网关。 这是您需要更改的系统管理界面工具(SMIT)中的条目的样子:

    Default Gateway
    Address (dotted decimal or symbolic name)     []

    在这种情况下,需要在“ 地址”字段中键入222.333.55.1 ,然后按Enter。

    步骤6:在ent14上创建以太网路由

    在ent14上,您必须创建在ent12上定义的路由。 这是有关如何使用ent12的netstat -rn命令的输出在ent14上创建这些路由的示例。 请参考上一节“ 步骤2:保存ent12的所有路由和路由信息”中提到的以下路由。

    222.333.55/26   222.333.55.16    UHSb        0   0   en12

    此路由来自ent12的netstat -rn的输出。 在此输出中查找ent12条目。 您需要执行以下步骤来添加它:

    1. 输入smit route ,然后按Enter。
    2. 选择添加静态路由 ,然后按Enter。
    3. 在“ 目标地址”字段中输入222.333.55.0 (有关如何获取IP地址,请参阅“ 比较route add命令和chdev命令或smitty ”部分。)
    4. 在“ 网关地址”字段中输入222.333.55.16
    5. 网络掩码字段中输入255.255.255.192255.255.255.192是/ 26的网络掩码)。
    6. 向下滚动到“ 选择接口”选项,然后选择“ PF4” ,然后选择“ ent14”

    要查找与/ 26相对应的网络掩码,请在Google中搜索“子网掩码映射”文本,您将获得一些显示映射的匹配项。 有关此映射的示例,请参考以下数据。

    Pref	  Mask			IPV4
    /32    255.255.255.255
    /31    255.255.255.254
    /30    255.255.255.252
    /29    255.255.255.248
    /28    255.255.255.240
    /27    255.255.255.224
    /26    255.255.255.192
    /25    255.255.255.128
    /24    255.255.255    
    /23    255.255.254    
    /22    255.255.252    
    /21    255.255.248    
    /20    255.255.240    
    /19    255.255.224    
    /18    255.255.192    
    /17    255.255.128    
    /16    255.255        
    /15    255.254        
    /14    255.252        
    /13    255.248        
    /12    255.240        
    /11    255.224        
    /10    255.192        
    /9     255.128        
    /8     255            
    /7     254            
    /6     252            
    /5     248            
    /4     240            
    /3     224            
    /2     192

    请注意以下映射中的以下条目。

    /17	255.255.128
    /10	255.192
    /7	254

    您需要为这三个条目使用以下条目作为网络掩码:

    /17	255.255.128.0
    /10	255.192.0.0
    /7	254.0.0.0

    如您所见,在这种情况下,您将必须添加零。

    请注意,我们仅从ent12在ent14上创建了一条路由。 例如,如果您要创建45条路线怎么办? 在这种情况下,创建这些路线需要花费多长时间? 使用脚本部分中的脚本在不到一分钟的时间内为您创建了45条路线! 这样可以大大减少生产中断。 这样做的好处是不会出现任何错误,也不会产生任何错字。 如果您手动创建45条路线并输入多个错字,则在测试期间或以后的生产中它可能会变得难看。 应用程序团队将必须确定哪些路由存在问题,并通知您进行故障排除和修复,而在用户的生产中可能会花费很长时间。 如果应用程序团队无法确定出现问题的路由,可能会更糟,那么这可能需要更长的时间才能解决。

    比较route add命令和chdev命令或smitty

    如果使用route add命令添加路由,则重启后将丢失该路由。 route add命令不会更新对象数据库管理器(ODM),因此重新启动后将不会重新创建路由。 要使路由永久化,您需要使用chdev命令或smitty来创建它。 这是使用chdev命令的示例。

    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.0.0,-if,en11,,,,-static,10.137.0.0,345.98.22.4"
    
    255.255.0.0 = Net Mask
    en11 = The Ethernet you are defining the route over
    10.137.0.0 = is the IP address
    345.98.22.4 = is the route

    您必须小心IP地址。 这是如何创建它的示例。 假设您收到添加以下路线的请求:

    149.131.76/26      121.152.76.16   	on en2

    该请求说添加一个IP 149.131.76的路由,其网络掩码为26,并且在以太网en2上的网关为121.152.76.16。 IP地址149.131.76缺少最后一个扩展名。 在这种情况下,您必须在末尾添加.0 ,这将使其成为149.131.76.0 ,您可以在chdev命令中使用该命令,也chdev使用smitty来添加此路由。 您的请求中可能有149.131/26而不是149.131.76/26 ,在这种情况下,您将在chdev命令中使用149.131.0.0的IP地址。 在这种情况下,您的chdev命令将如下所示:

    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.255.192,
    -if,en2,,,,-static,149.131.0.0,121.152.76.16"

    我已经在步骤6:在ent14上创建以太网路由中介绍了如何使用smit 创建路由

    步骤7:如有需要,请删除ent12

    此时,ent12已分离。 我通常会等待几天或一周,然后再删除它,以防万一由于某种原因,应用程序决定返回它(ent12)或退出它,然后很容易将其取回。 有关退出的更多信息,请参阅“退出”部分。 为了删除它,您可以使用以下命令:

    rmdev -Rdl ent12

    这将从ODM中删除ent12。

    使用脚本

    在您的AIX服务器上运行脚本。 请参考delete_or_recreate_static_routes_using_netstat脚本。

    该脚本创建了两个脚本,分别为/ tmp / route_add/ tmp / route_delete 这两个脚本是从netstat -rn命令的输出创建的。 route_add脚本为netstat -rn命令中显示的所有以太网重新创建所有路由。 在这种情况下, route_delete脚本将删除所有以太网的所有路由。 在这种情况下,您可以选择要使用的对象。 请参考此脚本的以下输出。

    route add script is in /tmp/route_add. Info derived from "netstat -rn " and NOT from "lsattr -El inet0"
    ------------------------------------------------------------------------------------------------------
    #!/usr/bin/ksh
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,,-if,en10,,,,-static,10.44.7.0,10.44.7.45"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.255.0,-if,en10,,,,-static,10.44.7.0,10.44.7.45"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,,-if,en10,,,,-static,10.44.7.255,10.44.7.45"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.0.0,-if,en11,,,,-static,10.137.0.0,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.252.0,-if,en11,,,,-static,10.567.16.0,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.255.0,-if,en11,,,,-static,10.567.24.0,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.255.128,-if,en11,,,,-static,10.567.25.0,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.255.128,-if,en11,,,,-static,10.567.25.128,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.240.0,-if,en11,,,,-static,10.208.0.0,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.255.240,-if,en11,,,,-static,32.75.241.192,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.255.128,-if,en11,,,,-static,62.567.25.0,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.255.224,-if,en11,,,,-static,62.567.25.160,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,,-if,en11,,,,-static,62.567.128.138,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,,-if,en11,,,,-static,62.567.128.139,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,,-if,en11,,,,-static,62.567.128.140,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,,-if,en11,,,,-static,62.567.128.141,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,,-if,en11,,,,-static,62.567.128.143,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,,-if,en11,,,,-static,62.567.128.146,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,,-if,en11,,,,-static,62.567.128.147,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.255.240,-if,en11,,,,-static,129.35.22.0,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.248.0,-if,en11,,,,-static,146.89.168.0,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,,-if,en11,,,,-static,345.98.22.0,345.98.22.1"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.255.248,-if,en11,,,,-static,345.98.22.0,345.98.22.1"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,,-if,en11,,,,-static,345.98.22.7,345.98.22.1"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.255.224,-if,en11,,,,-static,345.98.128.224,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.0.0,-if,en11,,,,-static,172.29.0.0,345.98.22.4"
    route delete script is in /tmp/route_delete. Info derived from "netstat -rn" and NOT from "lsattr -El inet0"
    ------------------------------------------------------------------------------------------------------------
    #!/usr/bin/ksh
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,,-if,en10,,,,-static,10.44.7.0,10.44.7.45"
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,255.255.255.0,-if,en10,,,,-static,10.44.7.0,10.44.7.45"
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,,-if,en10,,,,-static,10.44.7.255,10.44.7.45"
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,255.255.0.0,-if,en11,,,,-static,10.137.0.0,345.98.22.4"
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,255.255.252.0,-if,en11,,,,-static,10.567.16.0,345.98.22.4"
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,255.255.255.0,-if,en11,,,,-static,10.567.24.0,345.98.22.4"
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,255.255.255.128,-if,en11,,,,-static,10.567.25.0,345.98.22.4"
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,255.255.255.128,-if,en11,,,,-static,10.567.25.128,345.98.22.4"
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,255.255.240.0,-if,en11,,,,-static,10.208.0.0,345.98.22.4"
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,255.255.255.240,-if,en11,,,,-static,32.75.241.192,345.98.22.4"
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,255.255.255.128,-if,en11,,,,-static,62.567.25.0,345.98.22.4"
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,255.255.255.224,-if,en11,,,,-static,62.567.25.160,345.98.22.4"
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,,-if,en11,,,,-static,62.567.128.138,345.98.22.4"
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,,-if,en11,,,,-static,62.567.128.139,345.98.22.4"
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,,-if,en11,,,,-static,62.567.128.140,345.98.22.4"
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,,-if,en11,,,,-static,62.567.128.141,345.98.22.4"
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,,-if,en11,,,,-static,62.567.128.143,345.98.22.4"
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,,-if,en11,,,,-static,62.567.128.146,345.98.22.4"
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,,-if,en11,,,,-static,62.567.128.147,345.98.22.4"
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,255.255.255.240,-if,en11,,,,-static,129.35.22.0,345.98.22.4"
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,255.255.248.0,-if,en11,,,,-static,146.89.168.0,345.98.22.4"
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,,-if,en11,,,,-static,345.98.22.0,345.98.22.1"
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,255.255.255.248,-if,en11,,,,-static,345.98.22.0,345.98.22.1"
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,,-if,en11,,,,-static,345.98.22.7,345.98.22.1"
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,255.255.255.224,-if,en11,,,,-static,345.98.128.224,345.98.22.4"
    chdev -l inet0 -a delroute="net,-hopcount,0,-netmask,255.255.0.0,-if,en11,,,,-static,172.29.0.0,345.98.22.4"
    route add script is in /tmp/route_add. Info derived from "netstat -rn" and NOT from "lsattr -El inet0"
    route delete script is in /tmp/route_delete. Info derived from "netstat -rn" and NOT from "lsattr -El inet0"

    请注意在输出顶部位于route_add脚本之前的以下语句。

    route_add脚本位于/ tmp / route_add中。 信息从netstat -rn派生,而不是从lsattr -El inet0派生。

    这只是在提醒您,脚本的输出来自netstat命令,而不是lsattr ,并且保存在/ tmp / route_add中 在route_delete脚本之前也有类似的语句。

    route_add脚本具有两个以太网ent10和ent11。 netstat命令输出仅具有这两个以太网。 该脚本仅由只能创建静态路由器的chdev命令组成。 现在让我们说您要将以太网ent11移到新的以太网ent12。 在这种情况下,运行命令grep en11 /tmp/route_add ,您将获得以下输出。

    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.255.0,-if,en11,,,,-static,10.567.24.0,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.255.128,-if,en11,,,,-static,10.567.25.0,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.255.128,-if,en11,,,,-static,10.567.25.128,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.240.0,-if,en11,,,,-static,10.208.0.0,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.255.240,-if,en11,,,,-static,32.75.241.192,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.255.128,-if,en11,,,,-static,62.567.25.0,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.255.224,-if,en11,,,,-static,62.567.25.160,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,,-if,en11,,,,-static,62.567.128.138,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,,-if,en11,,,,-static,62.567.128.139,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,,-if,en11,,,,-static,62.567.128.140,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,,-if,en11,,,,-static,62.567.128.141,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,,-if,en11,,,,-static,62.567.128.143,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,,-if,en11,,,,-static,62.567.128.146,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,,-if,en11,,,,-static,62.567.128.147,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.255.240,-if,en11,,,,-static,129.35.22.0,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.248.0,-if,en11,,,,-static,146.89.168.0,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,,-if,en11,,,,-static,345.98.22.0,345.98.22.1"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.255.248,-if,en11,,,,-static,345.98.22.0,345.98.22.1"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,,-if,en11,,,,-static,345.98.22.7,345.98.22.1"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.255.224,-if,en11,,,,-static,345.98.128.224,345.98.22.4"
    chdev -l inet0 -a route="net,-hopcount,0,-netmask,255.255.0.0,-if,en11,,,,-static,172.29.0.0,345.98.22.4"

    这些是您将用来在ent12上创建来自ent11的路由的命令集。 您所要做的就是将ent11更改为ent12,您便拥有了所需的所有命令。 您可以将这些命令放入名为route_add_ent12的脚本中,并在必须在ent12上创建路由时运行它。 那将是第6步。在第6步中,在示例中,在标题ent14上创建以太网路由下,我们仅在ent14上创建了一个路由。 通常,在这种情况下,我为ent11和ent12创建四个脚本,如下所示:

    • route_delete_ent11(用于删除ent11路由的脚本)
    • route_add_ent12(用于在ent12上从ent11重新创建路由的脚本)
    • route_delete_ent12(用于删除回退时使用的ent12路由的脚本)
    • route_add_ent11(在回退的情况下重新创建ent11路由的脚本)

    请注意,我通常不使用脚本route_delete_ent11 ,在上面的示例中也没有使用它。 取而代之的是,分离ent11具有从ent11删除路由的作用,并且它们不再显示在netstat -rn的输出中。 在背出来的情况下,而不是使用route_add_ent11来重新创建ent11的路线,我只是ent11从分离改变了使用smit chinet及再instates它的路由。 有关退出的完整说明,请参阅“退出”部分。 但是,我喜欢保存这些脚本,以防万一以后出现问题,它们可以使我很好地了解ent11和ent12在移动IP地址前后的含义。 如果需要,他们还可以删除或重新添加任何以太网上的任何路由。 要创建这四个脚本,可以将grep命令与route_addroute_delete使用,就像我在上面使用它创建route_add_ent12一样。

    退出

    如果由于某种原因,应用程序组决定退出,则可以关闭并分离ent14。 这应该删除ent14的路由并使它们不可用。 使用netstat -rn进行验证,以确保未显示路由和ent14。 现在,您可以使用smit chinet将ent12的“ 当前状态 ”更改为up 这使ent12可用并恢复其路由。 使用netstat -rn验证并确保在ent12上定义了所有路由。 如果遇到意外问题,则始终可以使用上一部分中创建的四个路由脚本来修复它们。 这些脚本可以帮助解决问题。 他们将使添加或删除路由变得非常容易。

    翻译自: https://www.ibm.com/developerworks/aix/library/au-moving-ip-address/index.html

    展开全文
  • 然后在系统设置页面有个以太网菜单可以进行IP、网关等设置,如下: 二、那怎么通过代码去设置呢? 1、Android系统在Framework层是有提供操作以太网Api的也就是android.net.EthernetManager,但是Google把Api给隐藏...
  • 尝试nat模式、仅主机模式、生成的IP地址仅前三位相同,是能够与主机ping通的,换成无线网来桥接,配置好后,生成的ip地址也是前三位相同,并且主机和虚拟机之间可以ping通,虚拟机也可以连接外网。。。。 救救...
  • C# 修改本地以太网ip地址

    千次阅读 2019-10-14 12:56:23
    因为某项需求,要修改以太网的ip地址,研究了一段时间,因不太懂网络的知识,只实现了最基本的修改... //设置ip地址 private void SetNetworkAdapter(string ipAddress, string subnetMask, string gateway) ...
  • 但是当我设置静态后,出现需要将网线拔插一次更新网络后才能刷新ip地址的bug。当时以为只要像7.0和8.0那样新增就没有问题了,没想到这次9.0又改变了代码结构。下面我将详细介绍9.0的网络步骤。 以下是设计到的文件...
  • 静态IP设置器 它有助于设置您的以太网接口ip 仅适用于使用位于韩国的LG U + ISP的Windows PC。 在发布目录中运行ipsetter.exe 输入您想要的IP地址 检查你的ip
  • 由于设置以太网需要调用一些隐藏API,有两种方法可以实现: 1、反射 2、添加JAR包,把APP设置为系统APP。 作者参考一些网上资料,使用上面第2种方法实现。 ...里内有代码。...2.IP地址没做格式检测,APP崩溃...
  • 使用Batch设置IP地址

    2020-10-12 10:53:24
    使用Batch设置IP地址 配置静态IP @echo off set adaptor="以太网" set ip=192.168.1.101 set mask=255.255.255.0 set gateway=192.168.1.1 set dns=8.8.8.8 REM ================ netsh interface ip set address ...
  • netsh 设置 IP 地址

    2020-01-17 14:13:05
    netsh interface ip set addr 以太网 static 192.168.32.37 255.255.255.0 192.168.32.1 \>ipconfig Windows IP 配置 以太网适配器 以太网: 连接特定的 DNS 后缀 . . . . . . . : 本地链接 IPv6 地址. . . ...
  • 一. 用命令设置 ip 地址 用管理员的身份运行cmd窗口 输入netsh, 之后再输入interface ...# set address "以太网" static ip地址 子网掩码 默认网关 set address "以太网" static 192.168.1.101 255.255.255.0 192
  • 更改以太网IP地址时确认后出现:“出现了一个意外的情况,不能完成所有你在设置中所要求的更改”;2、打开命令提示符(Windows+R键后,输入cmd),输入 netsh interface ip set address "以太网" 16.25...
  • Android客制化------设置以太网静态IP

    千次阅读 2017-11-24 09:37:47
    最近有个功能,机器连接以太网之后能够通过app获取ip地址,网关,子网掩码等信息,同时还能去手动设置静态的ip。在网上查阅了相关资料,这方面的API在Android都是被hide的,通过反射等方式去调用比较麻烦。而我们...
  • 网络通信技术--设置IP地址

    千次阅读 2016-12-12 16:36:51
    无论是使用Cisco、H3C还是Huawei的设备,路由器与交换机上设置IP地址的命令都是一样的。下面我使用华为的路由器与交换机作为示例: 下面是我们的实验拓扑图: 实验器材:AR路由器三台;吉比特以太网线缆三条
  • windows 脚本 bat 设置ip地址 地址获取方式 dhcp或静态获取基础代码 基础 bat其实就是cmd命令 代码 下面直接贴出代码 :: 只需要修改相关的addr mask gateway ::‘以太网’是网卡的名字,可以通过ipconfig查看 :: ...
  • IP地址、子网掩码和网关地址的取值范围 选择 prfibus 首次 可以选择MPI 组态后根据实际情况设置 PG/PC 选择TCP/IP (xxx)后面是你的网卡名称 SET PG/PC里面有。 集成PN口或者带有CP的,首次下载也可不需要MPI,直接...
  • 电脑设置静态ip; 电脑和板子在同一网段; ipconfig查看本机以太网ipv4地址 编译如果代码被编译过可以清一下: idf.py fullclean 删掉build文件,或者直接拷贝原来的代码基础上修改,然后编译并烧录: ...
  • cmd设置ip地址和dns

    千次阅读 2017-12-01 17:49:51
    注意:cmd必须在管理员模式下 ...netsh interface ip set address "以太网" static 192.168.210.165 255.255.255.0 192.168.210.1 netsh interface ip set dns "以太网" static 202.106.0.20
  • BAT 脚本技术-利用bat批处理脚本静态指定ip地址、自动获取ip地址设置。 利用 bat 设置 ip ,跟我们直接在网络和共享中心设置的 ip 地址是一样的。 静态指定 ip 地址设置:【脚本需要用管理员权限来运行。】 动态获取...
  • 设置电脑主机ip地址

    2021-01-17 21:51:44
    设置电脑主机的ip地址 问题描述: 制作激光雷达的上位软件,模块是使用网线通信的,模块说明上指定服务端端口为192.168.2.102 环境:win10 x64 将电脑服务端端口修改为192.168.2.102,操作如下 wifi右键转入设置...
  • Centos中设置静态IP地址的方法

    万次阅读 2020-09-09 13:09:55
    Centos中设置静态IP地址的方法 1.设置静态IP地址,修改/etc/sysconfig/network-scripts/ifcfg-eth0的内容: DEVICE=eth0 #网卡对应的设备别名 HWADDR=00:0C:29:2E:36:16 #对应的网卡物理地址 TYPE=Ethernet #网卡...
  • 有些时候,在设置后固定ip,可能会造成上不了网的情况,其实,这个只需要更改下ip地址,就可以轻松解决了哦,下面一起来详细学习了解下吧! 1、右键Win10系统桌面上的网络,点击弹出菜单上的属性。 2、点击网络和...
  • ubuntu OS 以太网静态IP

    2019-12-27 15:10:09
    我是在RK3399/ubuntu 16.04 版本上设置 静态IP 地址,遇到的问题是设置后无法通过ethernet 上网。网上许多人讲,也许不同版本的ubuntu 有所不同吧。记录下我的设置过程。 1 在 etc/network/interfaces 文件中添加 ...
  • 步骤1:查看当前网络设置 从命令提示符或LXTerminal: 键入命令“ ifconfig” ...要编辑网络设置,必须编辑dhcpcd.conf文件以设置静态IP地址。 以下命令可用于将文件加载到编辑器中以更新文件: sudo

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,234
精华内容 493
关键字:

以太网设置ip地址