Android 获取网关 ip 和 DNS ip
参考下方 PingUtil.java 代码
import android.content.Context;
import android.net.DhcpInfo;
import android.net.wifi.WifiManager;
import android.text.format.Formatter;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.net.InetAddress;
import java.util.LinkedList;public class PingUtil {/*** 获取网关(API>=29)*/public static String getGateway(Context context) {WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);DhcpInfo dhcpInfo = wifiManager.getDhcpInfo();int gateway = dhcpInfo.gateway;return Formatter.formatIpAddress(gateway);}/*** 获取dns*/public static String getDns() {String[] dnsServers = getDnsFromCommand();// 组装StringBuffer sb = new StringBuffer();if (dnsServers != null) {sb.append(dnsServers[0]); //注意这里只会返回1个dns服务器ip}return sb.toString();}//通过 getprop 命令获取private static String[] getDnsFromCommand() {LinkedList<String> dnsServers = new LinkedList<>();try {Process process = Runtime.getRuntime().exec("getprop");InputStream inputStream = process.getInputStream();LineNumberReader lnr = new LineNumberReader(new InputStreamReader(inputStream));String line = null;while ((line = lnr.readLine()) != null) {int split = line.indexOf("]: [");if (split == -1) continue;String property = line.substring(1, split);String value = line.substring(split + 4, line.length() - 1);if (property.endsWith(".dns")|| property.endsWith(".dns1")|| property.endsWith(".dns2")|| property.endsWith(".dns3")|| property.endsWith(".dns4")) {InetAddress ip = InetAddress.getByName(value);if (ip == null) continue;value = ip.getHostAddress();if (value == null) continue;if (value.length() == 0) continue;dnsServers.add(value);}}} catch (Exception e) {e.printStackTrace();}return dnsServers.isEmpty() ? new String[0] : dnsServers.toArray(new String[dnsServers.size()]);}}相关文章:
Android 获取网关 ip 和 DNS ip
参考下方 PingUtil.java 代码 import android.content.Context; import android.net.DhcpInfo; import android.net.wifi.WifiManager; import android.text.format.Formatter;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; impor…...
Docker root用户的pip使用方法
Docker下root用户 pip install XX 显示pip命令不存在 # 原始目标:pip install XX pip install --root-user-actionignore 【XX】# (要安装的包)参考:WARNING: Running pip as the ‘root‘ user can result in broken permissions Linux 中 root 与 su…...
企业新片场排名如何优化
企业新片场排名如何优化 要如何去做关键SEO?第一个我们要做的就是做好 SEO 关键词的选词,一般就是会有第一个常用的选词方法,第一是以常用的提问词去做,不实像是情人节买什么礼物,母亲节买什么礼物, 618 有…...
Database Name
概述 DB_NAME与INSTANCE_NAME DB_NAME 数据库名称,也就是数据库的名字标示。这里,数据库里可能有多个实例,比如RAC里的多节点,这多个节点是不同的实例,但是却有相同的名字,他们的 DB_NAME是相同的…...
git代码版本管理
git 文章目录 git基本使用 基本使用 在一台新的电脑上使用git 你要下载安装git, 然后把git的安装路径配到系统环境变量里 然后把这台电脑的.ssh/ id_rsa.pub里的公钥整到github里 然后在github上新建仓库,它会生成一些指令引导上你传本地的代码 之后就可以在终…...
k8s概念-ConfigMap
回到目录 一般用于去存储 Pod 中应用所需的一些配置信息,或者环境变量,将配置于 Pod 分开,避免应为修改配置导致还需要重新构建 镜像与容器。 1 创建ConfigMap #使用 kubectl create configmap -h 查看示例,构建 configmap 对象…...
Mybatis 实体类属性名和表中字段名不一致怎么处理
一. 前言 最近耀哥有学生出去面试,被问到 “Mybatis实体类的属性名和表中的字段名不一致该怎么处理?”,这其实是一个很经典的面试题,接下来耀哥就为大家详细解析一下这道面试题。 二. 分析 2.1 实体类和字段名不一致所带来的后果…...
CAS - 从AtomicInteger窥探CAS
Unsafe类是CAS的核心,由于Java方法无法直接访问底层,需要通过本地方法(native)来实现,Unsafe类相当于一个桥梁。基于Unsafe类,可以直接操作特定的内存数据。 我们从上一篇说CAS基本原理的时候,有说到一个“资源”被100…...
micro-ros IMU ML 代码
示例代码: #include <micro_ros_arduino.h>#include "LSM6DSOXSensor.h" #include "lsm6dsox_activity_recognition_for_mobile.h"#include <stdio.h> #include <rcl/rcl.h> #include <rcl/error_handling.h> #inclu…...
二十三种设计模式第二十四篇--访问者模式(完结撒花)
在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。 通过这种方式,元素的执行算法可以随着访问者改变而改变。 这种类型的设计模式属于行为型模式。根据模式,元素对象已接…...
月报总结|Moonbeam 7月份大事一览
炎炎夏日,Moonbeam于越南举办了线下交流会,在EthCC 2023和以太坊社区成员共同讨论多链应用,在Polkadot Decoded中分享了Moonbeam的与众不同之处。 Bear Necessities Hackathon也于本月圆满结束,选出了每个赛道最杰出的项目&#…...
【2023.8】docker一键部署wvp-GB28181-pro和ZLMediaKit过程全记录
安装docker 使用的操作系统是ubuntu20.04 如何在 Ubuntu 20.04 上安装和使用 Docker https://developer.aliyun.com/article/762674 docker拉取配置好的ZLMediaKIt和wvp-GB28181-pro docker pull 648540858/wvp_pro第一次运行 docker一键运行ZLMediaKIt和wvp-GB28181-pro …...
【2023】字节跳动 10 日心动计划——第四关
目录 1. 买卖股票的最佳时机2. 打家劫舍 II 1. 买卖股票的最佳时机 🔗 原题链接:121. 买卖股票的最佳时机 假设在第 i i i 天卖出股票可获得最大利润,那么买入股票必然是在前 i − 1 i-1 i−1 天中的某一天。更进一步,买入股票应…...
数据库与数据仓库的区别及关系
数据库与数据仓库的区别及关系 数据库数据仓库异同差异联系例子 数据库 数据库是结构化信息或数据的有序集合,一般以电子形式存储在计算机系统中。通常由数据库管理系统 (DBMS) 来控制。它是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集…...
Emacs之设置行号前景颜色(字体颜色)/背景颜色/光标颜色/背景透明度(一百二十七)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…...
【hive经典指标,离线数仓指标,ADS层指标分析】最近7日内连续3日下单用户数
1.建表语句 DROP TABLE IF EXISTS ads_order_continuously_user_count; CREATE EXTERNAL TABLE ads_order_continuously_user_count (dt STRING COMMENT 统计日期,recent_days BIGINT COMMENT 最近天数,7:最近7天,order_continu…...
线上java程序CPU及内存占用过高问题排查总结
背景 最近发现线上的一个JAVA程序总是过段时间慢慢卡死,最后导致无法提供服务,外部请求接口超时。 经排查发现,该程序CPU及内存占用都很高,导致整个系统负载很高。 到这里,就想到了对程序内存进行分析。排查过程 查询…...
c高级:day3
作业: 1. 整理思维导图 2.判断家目录下,普通文件的个数和目录文件的个数 #!/bin/bash ######################################################################## # File Name: zy1.sh # Created Time: 2023年08月04日 星期五 19时13分08秒 ##############################…...
Java检查值是否存在于数组中的3种方法
在 Java 中,有许多方法可以检查此数组中是否存在特定元素。 1)使用线性搜索方法 时间复杂度:O(N) 辅助空间:O(1) for (int element : arr) { if (element toCheckValue) { return true; } } 示例代码: import java.ut…...
python 连接oracle pandas以简化excel的编写和数据操作
python代码 Author: liukai 2810248865qq.com Date: 2022-08-18 04:28:52 LastEditors: liukai 2810248865qq.com LastEditTime: 2023-07-06 22:12:56 FilePath: \PythonProject02\pandas以简化excel的编写和数据操作.py Description: 这是默认设置,请设置customMade, 打开koro…...
小白也能懂:立知多模态重排序模型,解决‘搜得到但排不准’的爬虫难题
小白也能懂:立知多模态重排序模型,解决搜得到但排不准的爬虫难题 1. 为什么我们需要多模态重排序? 你有没有遇到过这样的情况:在电商网站搜索"猫咪玩球",结果前几条却是猫粮、猫窝,甚至完全不相…...
SUNFLOWER MATCH LAB硬件对接:基于STM32F103C8T6最小系统板的图像采集端设计
SUNFLOWER MATCH LAB硬件对接:基于STM32F103C8T6最小系统板的图像采集端设计 最近在做一个植物生长监测的项目,需要部署一批低成本的图像采集终端。核心需求很简单:定时给植物拍照,然后把照片传到云端服务器。听起来不难…...
【GraalVM静态镜像内存优化终极指南】:20年JVM专家亲授3大内存压缩技法,启动速度提升87%的私密实践
第一章:GraalVM静态镜像内存优化快速接入全景概览GraalVM 静态镜像(Native Image)通过提前编译(AOT)将 Java 应用编译为独立、无 JVM 依赖的原生可执行文件,在启动速度与内存占用方面具备显著优势。然而&am…...
Bypass Paywalls Chrome Clean:突破付费内容壁垒的高效浏览器扩展
Bypass Paywalls Chrome Clean:突破付费内容壁垒的高效浏览器扩展 在信息爆炸的数字时代,优质内容常被付费墙阻隔,学术文献、深度报道和专业期刊的访问限制成为知识获取的主要障碍。Bypass Paywalls Chrome Clean作为一款开源浏览器扩展&…...
基础算法-高精度:高精度减法
P2142 高精度减法 题目链接:P2142 高精度减法 - 洛谷 高精度的题目解法和之前高精度加法的解法基本相同,所以就不再过多讲解原理了。 解法:模拟列竖式计算的过程。 ①先用字符串读入,然后拆分每一位,逆序放在数组…...
桌面端 Claw 个人微信接入指南使
1.概述在人工智能快速发展的今天,AI不再仅仅是回答问题的聊天机器人,而是正在演变为能够主动完成复杂任务的智能代理。OpenAI的Codex CLI就是这一趋势的典型代表——一个跨平台的本地软件代理,能够在用户的机器上安全高效地生成高质量的软件变…...
CSS如何实现动态间距调整_通过CSS变量控制padding与margin值
CSS变量可动态修改padding/margin,需以--开头、设默认值如var(--space-md, 12px),响应式通过media更新变量值,注意margin塌陷、命名规范及单位一致性。怎么用CSS变量动态改padding和margin直接在根元素或组件上定义--space-sm、--space-md这类…...
2026最全国内外电商API接口的数据列表与采集
电商数据采集 API 主要分为 官方开放平台 API(合规、稳定)和 第三方聚合 API(多平台统一、接入快)。下面按 国内主流平台(淘宝 / 天猫、京东、1688、拼多多) 跨境平台(亚马逊、速卖通、Shopee&a…...
最佳实践:避免在react-native-unistyles中常见的10个错误
最佳实践:避免在react-native-unistyles中常见的10个错误 【免费下载链接】react-native-unistyles Level up your React Native StyleSheet 项目地址: https://gitcode.com/gh_mirrors/re/react-native-unistyles react-native-unistyles是提升React Native…...
如何3分钟完成Windows和Office批量激活:KMS_VL_ALL_AIO终极指南
如何3分钟完成Windows和Office批量激活:KMS_VL_ALL_AIO终极指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 你是否曾因Windows系统弹出激活提示而烦恼?或者Office软件…...
