精华内容
下载资源
问答
  • 但是有时候我们的网络需要给电脑分配固定的ip地址才能上网的,所以就需要对ip进行更改,很多用户并不知道自己家的ip地址怎么改,阅读下文,小编给大家演示一下更改自己家里的IP地址详细步骤。具体步骤如下:1、...

    每台电脑都有自己的ip地址,默认是自动获取ip地址的,但是有时候我们的网络需要给电脑分配固定的ip地址才能上网的,所以就需要对ip进行更改,很多用户并不知道自己家的ip地址怎么改,阅读下文,小编给大家演示一下更改自己家里的IP地址的详细步骤。

    76d1c2d129d0be8c40a0396b49f3ac1a.png

    具体步骤如下:

    1、首先打开电脑的桌面,选择开始菜单,在弹出的开始菜单列表中选择控制面板选项;

    2da1a1636e2b16b054b949d0af148b8f.png

    2、然后点击打开控制面板,在弹出的控制面板窗口,选择网络和internet,然后点击进入;

    89c489724d18923f574de58dca7a411a.png

    3、接下来弹出网络和internet的设置窗口,在右侧的窗口找到网络和共享中心,然后点击进入;

    58527c2a6634ec0614a978e126391d96.png

    4、之后就会进入到网络和共享中心,在左侧的列表选项中找到更改适配器设置,然后点击进入;

    454ca4c8ac7e2a394d66e46de4487c87.png

    5、之后就可以看到我们现在正在使用的链接图标,这里有无线和有线两种连接,有线就更改本地连接即可,无线就更改无线的连接,这里就更改无线的;

    fde74b6782d7f2b951a9e40de169b1a8.png

    6、右击无线网络图标,在弹出的右键菜单中选择属性选项,然后就会弹出属性的设置窗口;

    7362bcff88e52fddb0125e70d6823bce.png

    17d52c86dfac0384a8b65e6eb5c29138.png

    7、在属性框的列表中选择internet协议版本4,然后选择下边的属性选项,点击就可以进入;

    afb0dd09d18497e56d4d82fab8c9048e.png

    8、接下来就看到了更改ip地址的窗口,这里默认是自动获取ip地址,在“使用下边的IP地址”选项前面的圆圈点击,就可以手动输入ip地址了,输入好自己需要的IP地址和dns后点击确定即可,这个时候电脑的IP地址就更改成功了。

    da2d40ff9ee2d565214da642518dbd6d.png

    7e85d21e733f601bfd7651471bd28082.png

    上述给大家讲解的便是自己家的ip地址怎么改的详细内容,有需要的用户们可以按照上面的方法来进行操作吧。

    我要分享到:

    展开全文
  • 类型:赛车竞技大小:30M语言:中文 评分:10.0标签:立即下载我们经常听到说要设置ip地址,有时还会有要记录mac地址,办公室的电脑如果不设置一个固定ip 就会经常造成管理的混乱,那怎么查询自己电脑的ip呢?...

    fae480b0b6f1015fdb079f016402d1c5.png

    类型:赛车竞技大小:30M语言:中文 评分:10.0

    标签:

    立即下载

    我们经常听到说要设置ip地址,有时还会有要记录mac地址,办公室的电脑如果不设置一个固定ip 就会经常造成管理的混乱,那怎么查询自己电脑的ip呢?基本上可以有2种方法可以查询。

    ip地址是什么意思本文就不解释了,一般家里的路由器都会设置成192.168.1.1或者192.168.0.1等,这是一个网关ip地址,那么对应的局域网ip就是192.168.1.*或者192.168.0.*,查询自己电脑ip和mac可以通过命令行来查询。

    62681e9ab9977abc74e8fd21f09fb7fe.png

    在 “搜索程序和文件框中输入”cmd 回车。如下图

    02f3e7b029d8c2bf6af403c64ffe53b3.png

    打开命令行窗口:

    842ae6b4acce59648ec17a24ba6fba53.png

    再输入 ipconfig /all,回车

    dda25759079ae80f8052fcb5a3491f1b.png

    就会出现如下图中的内容

    78ebfb6d67efd32e13145a49e72c6ca2.png

    那么mac地址 就是上图中的物理点了,ip地址就是 IPv4地址。OK 好简单吧。

    905337a0f6abc8a55836f8b6e801a50d.png

    对应着把mac地址和ip地址敲出来就行了。

    下面是另外一种方法查询电脑的mac地址和ip地址。

    右键入下图中的网络图标

    058a620ad74aa428d9e21ae08c7a44e2.png

    打开网络和共享中心

    73a2c4dedffb87fd38096b797d4d17d2.png

    点击“本地连接”

    473d241ebe95f23819adfcaa40459c6e.png

    打开本地连接 状态

    4383ddd02e312607b9b8dcabfa177d22.png

    看到了这个界面还是用鼠标左键点击下面的“详细信息”

    926732dbda4a7700e44e7058778d214d.png

    IP地址,MAC地址,现身吧,黎明的曙光已经升起,再强大的黑暗也挡不了我利剑般的光标。实际地址就是MAC地址,实际地址下面的IP地址就是你电脑现在的IP地址。OK大功告成!

    展开全文
  • 3. 若提供的详细地址在库中不到,则从地址尾部去掉一个字再查询,直到查询到数据为止; 4. 使用Mysql全文检索(5.7以后的版本),提供查询精度; 一、数据准备 首先准备全国邮编数据库,这里我整理了


    前言

    通过地址查询邮编处理步骤:
    1. 首先要对地址进行格式处理,去掉多余部分,某某路后面的部分不要,因为地址库中可能没有会查不到;
    2. 对省市县进行处理,去掉省市县(民族)后缀;
    3. 若提供的详细地址在库中查不到,则从地址尾部去掉一个字再查询,直到查询到数据为止;
    4. 使用Mysql全文检索(5.7以后的版本),提供查询精度;


    一、数据准备

    首先准备全国邮编数据库,这里我整理了一份 邮编数据库下载地址可提供大家使用。

    CREATE TABLE `postcode_detail` (
      `detail_address` varchar(500) NOT NULL COMMENT '地址唯一标识(完整地址)',
      `postcode` varchar(10) NOT NULL COMMENT '邮政编码',
      `province_name` varchar(100) DEFAULT NULL COMMENT '省份名称',
      `city_name` varchar(100) DEFAULT NULL COMMENT '城市名称',
      `district_name` varchar(100) DEFAULT NULL COMMENT '区县名称',
      `street_name` varchar(100) DEFAULT NULL COMMENT '乡镇街道',
      `address` varchar(255) DEFAULT NULL COMMENT '地址',
      `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
      `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
      PRIMARY KEY (`detail_address`) USING BTREE,
      KEY `index_postcode` (`postcode`),
      KEY `index_name` (`province_name`,`city_name`,`district_name`,`street_name`),
      FULLTEXT KEY `index_detail_address` (`detail_address`) /*!50100 WITH PARSER `ngram` */ 
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='国内邮编信息详情表';
    

    数据效果图如下:
    数据效果图如下


    二、代码实现

    1. 格式化地址对象

    
    import cn.hutool.core.util.StrUtil;
    import io.swagger.annotations.ApiModel;
    import io.swagger.annotations.ApiModelProperty;
    import lombok.Data;
    
    import java.io.Serializable;
    
    /**
     * 格式化地址对象
     *
     * @author chqiu
     */
    @Data
    @ApiModel(value = "格式化地址对象")
    public class FormattedAddressDTO implements Serializable {
    
        private static final long serialVersionUID = 1L;
        /**
         * 省份名称 `province_name` varchar(100)  COMMENT 省份名称
         */
        @ApiModelProperty(value = "省份名称")
        private String provinceName;
        /**
         * 城市名称 `city_name` varchar(100)  COMMENT 城市名称
         */
        @ApiModelProperty(value = "城市名称")
        private String cityName;
        /**
         * 区县名称 `district_name` varchar(100)  COMMENT 区县名称
         */
        @ApiModelProperty(value = "区县名称")
        private String districtName;
        /**
         * 乡镇街道 `street_name` varchar(100)  COMMENT 乡镇街道
         */
        @ApiModelProperty(value = "乡镇街道")
        private String streetName;
        /**
         * 地址 `address` varchar(255)  COMMENT 地址
         */
        @ApiModelProperty(value = "地址")
        private String address;
        /**
         * 格式化的小地名
         */
        private String smailAddress;
        /**
         * 完整地址
         */
        private String detailAddress;
        /**
         * 生成的查询条件(全文检索)。如:"+云南省 +昆明市 +呈贡区 <石龙"
         */
        private String againstAddress;
    
        /**
         * 地址解析
         *
         * @param address 地址
         * @return 解析后的地址字符串
         */
        public static FormattedAddressDTO parse(String address) {
            return parse(null, null, null, address, false);
        }
    
        /**
         * 地址解析
         *
         * @param provinceName 省份名称
         * @param cityName     城市名称
         * @param districtName 区县名称
         * @param address      地址
         * @return 解析后的地址字符串
         */
        public static FormattedAddressDTO parse(String provinceName, String cityName, String districtName, String address) {
            return parse(provinceName, cityName, districtName, address, false);
        }
    
        /**
         * 地址解析
         *
         * @param provinceName 省份名称
         * @param cityName     城市名称
         * @param districtName 区县名称
         * @param address      地址
         * @param isSubStr     是否较少字符
         * @return 解析后的地址字符串
         */
        public static FormattedAddressDTO parse(String provinceName, String cityName, String districtName, String address, boolean isSubStr) {
            if (StrUtil.isNotEmpty(address)) {
                // 省市区为空,地址中带省市区情况进行解析
                if (StrUtil.isEmpty(provinceName)) {
                    provinceName = parseProvince(address);
                    if (StrUtil.isNotEmpty(provinceName)) {
                        address = address.replace(provinceName, "");
                    }
                }
                if (StrUtil.isEmpty(cityName)) {
                    cityName = parseCity(address);
                    if (StrUtil.isNotEmpty(cityName)) {
                        address = address.replace(cityName, "");
                    }
                }
                if (StrUtil.isEmpty(districtName)) {
                    districtName = parseDistrict(address);
                    if (StrUtil.isNotEmpty(districtName)) {
                        address = address.replace(districtName, "");
                    }
                }
            }
    
            // 减少字符处理
            if (isSubStr) {
                if (StrUtil.isNotEmpty(address)) {
                    address = address.length() < 3 ? "" : address.substring(0, address.length() - 1);
                } else if (StrUtil.isNotEmpty(districtName)) {
                    districtName = districtName.length() < 3 ? "" : districtName.substring(0, districtName.length() - 1);
                } else if (StrUtil.isNotEmpty(cityName)) {
                    cityName = cityName.length() < 3 ? "" : cityName.substring(0, cityName.length() - 1);
                } else if (StrUtil.isNotEmpty(provinceName)) {
                    provinceName = districtName.length() < 3 ? "" : districtName.substring(0, provinceName.length() - 1);
                }
            }
            String smailAddress = parseSmailAddress(provinceName, cityName, districtName, address);
            FormattedAddressDTO dto = new FormattedAddressDTO();
            dto.setProvinceName(getSimplifiedName(provinceName));
            dto.setCityName(getSimplifiedName(cityName));
            dto.setDistrictName(getSimplifiedName(districtName));
            dto.setAddress(address);
            dto.setSmailAddress(smailAddress);
            dto.setDetailAddress(String.format("%s%s%s%s", provinceName, cityName, districtName, dto.getSmailAddress()));
            dto.setAgainstAddress(parseAgainstAddress(dto.getProvinceName(), dto.getCityName(), dto.getDistrictName(), dto.getSmailAddress()));
            return dto;
        }
    
        /**
         * 省份后缀名
         */
        private final static String[] PROVINCE_POSTFIXS = new String[]{"省", "市", "自治区"};
        /**
         * 地市后缀
         */
        private final static String[] CITY_POSTFIXS = new String[]{"市", "自治州", "地区", "自治县", "县", "盟"};
        /**
         * 区县后缀
         */
        private final static String[] DISTRICT_POSTFIXS = new String[]{"市", "区", "自治县", "县", "自治旗", "旗"};
    
        /**
         * 从地址中提取省份名称
         *
         * @param address 地址
         * @return 省份名称
         */
        private static String parseProvince(String address) {
            return parsePostfix(address, PROVINCE_POSTFIXS);
        }
    
        /**
         * 从地址中提取地市名称
         *
         * @param address 地址
         * @return 地市名称
         */
        private static String parseCity(String address) {
            return parsePostfix(address, CITY_POSTFIXS);
        }
    
        /**
         * 从地址中提取区县名称
         *
         * @param address 地址
         * @return 区县名称
         */
        private static String parseDistrict(String address) {
            return parsePostfix(address, DISTRICT_POSTFIXS);
        }
    
        /**
         * 根据地址和相应后缀名,读取后缀名之前的部分内容
         *
         * @param address  地址
         * @param postfixs 后缀关键字
         * @return 后缀名之前的部分内容
         */
        private static String parsePostfix(String address, String[] postfixs) {
            for (String postfix : postfixs) {
                int postfixIndex = address.indexOf(postfix);
                if (postfixIndex > 0) {
                    return address.substring(0, postfixIndex + postfix.length());
                }
            }
            return null;
        }
    
        /**
         * 获取简化名
         *
         * @param name 名称
         * @return 简化名
         */
        private static String getSimplifiedName(String name) {
            if (null == name || name.length() < 3) {
                return name;
            }
            for (int i = 0; i < EXCLUDES.length; i++) {
                if (name.length() > 2) {
                    if (name.endsWith(EXCLUDES[i])) {
                        // 去掉后缀,前提地名必须大于1
                        if (name.length() - EXCLUDES[i].length() >= 2) {
                            name = name.substring(0, name.length() - EXCLUDES[i].length());
                        } else {
                            return name;
                        }
                        if (name.endsWith("族")) {
                            return getSimplifiedName(name);
                        }
                    }
                } else {
                    break;
                }
            }
            return name;
        }
    
    
        /**
         * 地名单位级别顺序
         */
        private final static String[] EXCLUDES = new String[]{"省", "自治区", "自治州", "地区", "市", "自治县", "区", "县", "自治旗", "旗",
                "维吾尔", "哈萨克", "蒙古", "各族"
                , "傈僳族", "哈尼族", "羌族", "满族", "蒙古族", "回族", "藏族", "维吾尔族", "苗族", "彝族", "壮族", "布依族", "侗族", "瑶族", "白族", "土家族", "哈尼族", "哈萨克族", "傣族", "黎族", "傈僳族", "佤族", "畲族", "高山族", "拉祜族", "水族", "东乡族", "纳西族", "景颇族", "柯尔克孜族", "土族", "达斡尔族", "仫佬族", "羌族", "布朗族", "撒拉族", "毛南族", "仡佬族", "锡伯族", "阿昌族", "普米族", "朝鲜族", "塔吉克族", "怒族", "乌孜别克族", "俄罗斯族", "鄂温克族", "德昂族", "保安族", "裕固族", "京族", "塔塔尔族", "独龙族", "鄂伦春族", "赫哲族", "门巴族", "珞巴族", "基诺族"};
    
        /**
         * 地名单位级别顺序
         */
        private final static String[] LEVELS = new String[]{"路", "村", "庄", "里", "街道", "街", "农场", "巷", "弄", "屯", "胡同", "小区", "大道", "乡", "镇"};
    
        /**
         * 格式化地址
         * <br>
         * 字符串截断,按照地名级别由小到大,保留关键词之前的部分:路、村、庄、里、街、农场、巷、弄、胡同、小区、大道、乡、镇
         *
         * @param address 地址
         * @return 格式化以后的地址
         */
        private static String parseSmailAddress(String provinceName, String cityName, String districtName, String address) {
            // 和并处理详细地址
            String smailAddress = String.format("%s%s%s%s", StrUtil.isEmpty(provinceName) ? "" : provinceName
                    , StrUtil.isEmpty(cityName) ? "" : cityName, StrUtil.isEmpty(districtName) ? "" : districtName
                    , StrUtil.isEmpty(address) ? "" : address);
            if (StrUtil.isNotEmpty(districtName)) {
                smailAddress = smailAddress.replace(districtName, "");
            }
            if (StrUtil.isNotEmpty(cityName)) {
                smailAddress = smailAddress.replace(cityName, "");
            }
            if (StrUtil.isNotEmpty(provinceName)) {
                smailAddress = smailAddress.replace(provinceName, "");
            }
            for (String level : LEVELS) {
                if (smailAddress.contains(level)) {
                    // 找到最小级别,开始截取
                    smailAddress = smailAddress.substring(0, smailAddress.indexOf(level) + level.length());
                    break;
                }
            }
            return smailAddress;
        }
    
        private static String parseAgainstAddress(String provinceName, String cityName, String districtName, String address) {
            // 拼接查询语句
            StringBuilder builder = new StringBuilder();
            if (StrUtil.isNotEmpty(provinceName)) {
                builder.append("+");
                builder.append(provinceName);
            }
            if (StrUtil.isNotEmpty(cityName)) {
                if (StrUtil.isNotEmpty(provinceName)) {
                    builder.append(" ");
                }
                builder.append("+");
                builder.append(cityName);
            }
            if (StrUtil.isNotEmpty(districtName)) {
                if (StrUtil.isNotEmpty(provinceName) || StrUtil.isNotEmpty(cityName)) {
                    builder.append(" ");
                }
                builder.append("+");
                builder.append(districtName);
            }
            if (StrUtil.isNotEmpty(address)) {
                if (StrUtil.isNotEmpty(provinceName) || StrUtil.isNotEmpty(cityName) || StrUtil.isNotEmpty(districtName)) {
                    builder.append(" ");
                }
                builder.append("<");
                builder.append(address);
            }
            return builder.toString();
        }
    }
    

    2. mapper数据库查询代码

    代码如下:

    
    @Repository
    public interface PostcodeDetailMapper {
        /**
         * 根据地址查询邮编信息
         *
         * @param againstAddress 地址
         * @return 邮编信息
         */
        @Select("SELECT detail_address,postcode, MATCH (detail_address) AGAINST (#{againstAddress}) as score from postcode_detail where MATCH (detail_address) AGAINST (#{againstAddress} IN BOOLEAN MODE) LIMIT 2")
        List<PostcodeDetailSearchDTO> selectListByAddress(@Param("againstAddress") String againstAddress);
    }
    
    

    3. 查询代码实现

    代码如下:

    
    import cn.hutool.core.util.StrUtil;
    import com.baomidou.mybatisplus.core.MybatisConfiguration;
    import com.baomidou.mybatisplus.core.MybatisSqlSessionFactoryBuilder;
    import com.baomidou.mybatisplus.core.MybatisXMLLanguageDriver;
    import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
    import com.chqiuu.spider.common.connect.BaseConnect;
    import com.chqiuu.spider.common.connect.HikariConnect;
    import com.chqiuu.spider.common.enums.DriverClassEnum;
    import com.chqiuu.spider.modules.spider.dto.FormattedAddressDTO;
    import com.chqiuu.spider.modules.spider.dto.PostcodeDetailSearchDTO;
    import com.chqiuu.spider.modules.spider.entity.ChinaCourtEntity;
    import com.chqiuu.spider.modules.spider.mapper.ChinaCourtMapper;
    import com.chqiuu.spider.modules.spider.mapper.PostcodeBaseMapper;
    import com.chqiuu.spider.modules.spider.mapper.PostcodeDetailMapper;
    import lombok.extern.slf4j.Slf4j;
    import org.apache.ibatis.logging.stdout.StdOutImpl;
    import org.apache.ibatis.mapping.Environment;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.transaction.TransactionFactory;
    import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;
    import org.junit.jupiter.api.AfterEach;
    import org.junit.jupiter.api.BeforeEach;
    import org.junit.jupiter.api.Test;
    
    import javax.sql.DataSource;
    import java.util.ArrayList;
    import java.util.List;
    
    @Slf4j
    public class PostcodeTest {
        private static SqlSessionFactory sqlSessionFactory;
    
        public static SqlSessionFactory initSqlSessionFactory() {
            BaseConnect connect = new HikariConnect(DriverClassEnum.MYSQL, "127.0.0.1", 3306, "spider", "root", "");
            if (null == connect.getDataSource()) {
                return null;
            }
            DataSource dataSource = connect.getDataSource();
            TransactionFactory transactionFactory = new JdbcTransactionFactory();
            Environment environment = new Environment("PostcodeTests", transactionFactory, dataSource);
            MybatisConfiguration configuration = new MybatisConfiguration(environment);
            configuration.addMapper(PostcodeBaseMapper.class);
            configuration.addMapper(PostcodeDetailMapper.class);
            configuration.addMapper(ChinaCourtMapper.class);
            configuration.setDefaultScriptingLanguage(MybatisXMLLanguageDriver.class);
            configuration.setLogImpl(StdOutImpl.class);
            return new MybatisSqlSessionFactoryBuilder().build(configuration);
        }
    
        @BeforeEach
        public void prepare() {
            log.info(" before :所有的测试方法之前都先执行这个方法");
            sqlSessionFactory = initSqlSessionFactory();
        }
    
        @AfterEach
        public void destroy() {
            log.info("执行完毕!");
        }
    
        @Test
        void getPostcode() {
            String address = "云南省大理白族自治州漾濞彝族自治县苍山东路60号";
            log.info("{} {}", address, getPostcode(address));
    
            log.info(getPostcode("江苏省", "苏州市", "苏州工业园区", "星湖街288号"));
            log.info(getPostcode("福建省", "龙岩市", "连城县", "西环中路与北大西路交叉口北20米路西"));
            log.info(getPostcode("云南省", "昆明市", "五华区", "环城西路565号"));
            log.info(getPostcode("云南省", "昆明市", "西山区", "昆明市西山区日新中路393号"));
        }
    
        @Test
        void getFormattedAddress() {
            FormattedAddressDTO formattedAddressDTO = FormattedAddressDTO.parse("云南省昆明市寻甸回族彝族自治县凤梧路");
            log.info(formattedAddressDTO.toString());
            formattedAddressDTO = FormattedAddressDTO.parse("云南省大理白族自治州漾濞彝族自治县苍山东路60号");
            log.info(formattedAddressDTO.toString());
            formattedAddressDTO = FormattedAddressDTO.parse("云南省", "大理白族自治州", "漾濞彝族自治县", "云南省大理白族自治州漾濞彝族自治县苍山东路60号");
            log.info(formattedAddressDTO.toString());
            formattedAddressDTO = FormattedAddressDTO.parse("云南省", "昆明市", "寻甸回族彝族自治县", "云南省昆明市寻甸回族彝族自治县凤梧路");
            log.info(formattedAddressDTO.toString());
        }
    
    
    
        /**
         * 根据地址获取邮政编码
         *
         * @param address 详细地址
         * @return 邮政编码
         */
        private String getPostcode(String address) {
            return getPostcode(null, null, null, address, false);
        }
    
        /**
         * 根据地址获取邮政编码
         *
         * @param provinceName 省份
         * @param cityName     地市
         * @param districtName 区县
         * @param address      详细地址
         * @return 邮政编码
         */
        private String getPostcode(String provinceName, String cityName, String districtName, String address) {
            return getPostcode(provinceName, cityName, districtName, address, false);
        }
    
        /**
         * 根据地址获取邮政编码
         *
         * @param provinceName 省份
         * @param cityName     地市
         * @param districtName 区县
         * @param address      详细地址
         * @param isSubStr     是否缩减文字
         * @return 邮政编码
         */
        private String getPostcode(String provinceName, String cityName, String districtName, String address, boolean isSubStr) {
            FormattedAddressDTO formattedAddressDTO = FormattedAddressDTO.parse(provinceName, cityName, districtName, address, isSubStr);
            // 下面到邮编库中查询邮编
            List<PostcodeDetailSearchDTO> postcodeDetails = new ArrayList<>();
            try (SqlSession session = sqlSessionFactory.openSession(true)) {
                PostcodeDetailMapper postcodeDetailMapper = session.getMapper(PostcodeDetailMapper.class);
                postcodeDetails = postcodeDetailMapper.selectListByAddress(formattedAddressDTO.getAgainstAddress());
            }
            if (postcodeDetails.size() > 0) {
                return postcodeDetails.get(0).getPostcode();
            } else {
                if (provinceName.length() + cityName.length() + districtName.length() + address.length() < 2) {
                    return null;
                }
                // 缩短地址继续找
                log.info("缩短地址继续找 {}", formattedAddressDTO.getAgainstAddress());
                return getPostcode(formattedAddressDTO.getProvinceName(), formattedAddressDTO.getCityName(), formattedAddressDTO.getDistrictName(), formattedAddressDTO.getSmailAddress(), true);
            }
        }
    }
    

    三、运行效果

    运行效果如下:
    在这里插入图片描述

    展开全文
  • 为了深入的学习web网路安全的知识,最近看了不少有关资料,以供大家参考: 什么是IP地址,子网...我们知道,没有了IP地址就不能上网,我们也知道没有设DNS就不能上外网,可他们又有什么区别呢?不知道大家有没...

    为了深入的学习web网路安全的知识,最近看了不少有关资料,以供大家参考:

    • 什么是IP地址,子网掩码,默认网关,DNS服务器呢?

    相信大家在接触计算机知识的时候经常会与这些名词打交道,但是又不懂其中的原理,甚至都不知道是什么东西,这严重阻碍了我们的道路,下面就围绕着这个来讲一讲:

    我们知道,没有了IP地址就不能上网,我们也知道没有设DNS就不能上外网,可他们又有什么区别呢?不知道大家有没有遇到这样的情况:我的计算机没有设DNS,竟然能上QQ,但是不能打开网页,这是为什么呢?

      

     

    讲解:IP是32位二进制数据,通常以十进制表示,并以“.”分隔。IP地址是一种逻辑,用来标识一个个主机,IP有唯一性。

    DNS是域名服务器,用来解析域名的(就是域名与IP之间的解析),如果没有这东西,你必须输入网站的IP地址,如果你设置了DNS的话那么就可以直接输入地址(因为设置了DNS,他会进行解析转换)

             因为QQ不需要DNS(他只是一个应用,不需要DNS)所以能上网,而浏览网页时需要输入网址(这时就得用到DNS服务器进行解析了,没有的话浏览器当然就不能识别了),所以不能上网。

     

     

    • DNS服务器

    DNS(Domain Name Server):是指域名服务器。在Internet上域名与IP地址之间是一一对应的,域名虽然利于我们记忆,但是电脑却只能是被IP地址,所以这里用到DNS服务器来进行域名解析,就是将域名解析为电脑可以识别的IP地址。

     

    把域名翻译成IP地址的软件称为域名系统,即DNS。它保存了一张域名与之相对应的IP地址的表,用来解析消息的域名。

     

    域名是有一串淀粉各的名字组成,通常包含组织名,而且始终包括两到三个字母的猴嘴,以指示组织的类型或域所在的国家或地区(.edu 、,cn 、.net等)

     

    我们大多数人都用过Google.com进行搜索,不过你有没有想过浏览器里面输入Google.com就能连接到Google的服务器呢? 这就需要我们来了解域名服务器的概念了。

     

    就如同在现实生活中人们是通过名字来互相区分的,在计算机的世界里,他们是靠IP地址来互相去区分的。IP地址分为两种类型:公有和私有。通常服务器使用公有地址,这是因为它们需要被全世界数以百万计的计算机访问,至于咱们平常连接在路由器上的个人电脑,通常去的都是私有IP。全球有这么多的计算机,公有地址又是有限的,所以现在我们用的都是在一个公有IP的路由下搭建的局域网。

     

     

    我们知道如果记忆IP地址的话非常困难的,于是每个服务器都有一个名字(比如Google.com)。这样只需要在浏览器中搜索它,敲回车就可以了。那么在这之间发生了什么呢?首先第一步就是需要把域名转化为对应的IP,完成这个,需要给默认网关(可以理解为路由器,下面会讲到)发送一条DNS请求,路由都会配置一个DNS服务器地址,这个地址便是DNS请求的目的地。

     

    简单讲就是输入网址-----》向网关发送一条DNS请求----》网关分配一个DNS解析器--------》将网址分析为IP地址-----------》实现通信

     

     

     

    • IP地址

    IP地址相信大家并不陌生但是,对其深入了解的人并不多。

    电脑之间要实现网络通信,就必须要有一个合法的IP地址。IP地址=网络地址+主机地址(又称:主机号和网络号组成)IP地址通常比较直观,以圆点分隔号的四个十进制数字表示,每个数字从0到255,如某一台IP地址为:128.20.4.1在局域网里,同样也需要IP地址,一般内网的IP地址是以192.168开头的,这样就很容易区分公网和内网的IP地址。

     

     

    在学习网络中,IP地址是出现频率非常高的词,还有一些名词例如:网络地址、广播地址、子网、默认网关、和DNS服务器等,这些都是什么意思呢?

     

    下面来举个生动形象的例子:

     

    如图2所示,住在北大街的住户要能互相找到对方,必须各自都要有个门牌号,这个门牌号就是各家的地址,门牌号的表示方法为:北大街+XX号.假如1号住户要找6号住户,过程是这样的,1号在大街上喊了一声:"谁是6号,请回答.",这时北大街的住户都听到了,但只有6号作了回答,这个喊的过程叫"广播",北大街的所有用户就是他的广播范围,假如北大街共有20个用户,那广播地址就是:北大街 21号.也就是说,北大街的任何一个用户喊一声能让"广播地址-1"个用户听到. 

     

     

    图2 

    从这个例中可以抽出下面几个词: 

    街道地址:北大街,如果给该大街一个地址则用第一个住户的地址-1,此例为:北大街0号 

    住户的号:如1号,2号等. 

    住户的地址:街道地址+XX号,如北大街 1号,北大街 2号等 

    广播地址:就是他广播的范围,在这个例子中就是最后一个住户的地址+1,:北大街21号

     

     

     

    下面将其实例到计算机网络中去:

    在Internet网络中,每个上网的计算机都有一个向上例中具体到住户的地址,这个地址就是IP地址,是分配给网络设备的门牌号,

     IP地址= 网络地址+主机地址   (就拿一个IP地址来说:192.168.100.1) 这个地址包含了很多含义:

      

    网络地址(网络地址是由ip地址和子网掩码计算出来的下面会详细介绍):相当于街道地址 192.168.100.0

    主机地址:相当于各户的门号:0.0.0.1

    IP地址:相当于住户地址:192.168.100.1

    广播地址:192.168.100.255

     

    这些地址是如何计算出来的呢?为什么计算这些地址呢?要想知道如何,就要明白一个道理,学习网络的目的就是如何让网络中的计算机相互通讯,也就是说要围绕着“通”这个字来学习理解网络中的概念,而不是只为背几个名词。

    注:192.168.100.1是

    私有地址,是不能直接在Internet网络中应用的,上Internet要转为公有地址,下面详细说明. 

     

    •  为什么要计算网络地址

    一句话就是让网络中的计算机能够相互通讯。

     

    1,设置1号机的IP地址为192.168.0.1子网掩码为255.255.255.0,2号机的IP地址为192.168.0.200子网掩码为255.255.255.0,这来台计算机就能正常通讯.

     

    2,如果1号机地址不变,将2号机的IP地址改为192.168.1.200子网掩码还是为255.255.255.0,那这两台就无法通讯.

     

    3,设置1号机的IP地址为192.168.0.1子网掩码为255.255.255.192,2号机的IP地址为192.168.0.200子网掩码为255.255.255.192,注意和第1种情况的区别在于子网掩码,1为255.255.255.0本例是255.255.255.192。这台计算机就不能正常通讯. 

     

     

     

     

    图3 

    可能大家最不能理解的应该就是第三种情况了(稍后你就明白了)

    第一种情况能通是因为两台计算机的网络地址以相同的:192.168.0.0,而2,3两种情况的网络地址不等,所以不能进行相互通信

     

     

    这里先给个结论:用网线直接连接的计算机或是通过HUB(集线器)或普通交换机间接的计算机之间要能够相互通,计算机必须要在同一网络,也就是说它们的网络地址必须相同,而且主机地址必须不一样.如果不在一个网络就无法通.这就像我们上面举的例子,同是北大街的住户由于街道名称都是北大街,且各自的门牌号不同,所以能够相互找到对方. 计算网络地址就是判断网络中的计算机在不在同一网络,在就能通,不在就不能通.注意,这里说的在不在同一网络指的是IP地址而不是物理连接.那么如何计算呢

     

                             

    二,如何计算网络地址 (子网掩码)

     

    我们日常生活中的地址如:北大街1号,从字面上就能看出街道地址是北大街,而我们从IP地址中却难以看出网络地址,要计算网络地址,必须借助我们上边提到过的子网掩码. 

    计算过程是这样的,将IP地址和子网掩码都换算成二进制,然后进行与运算,结果就是网络地址.与运算如下所示,上下对齐,1位1位的算,1与1=1 ,其余组合都为0 

     

     

    图4 

     

    例如:计算IP地址为:202.99.160.50子网掩码是255.255.255.0的网络地址步骤如下: 

    1)将IP地址和子网掩码分别换算成二进制 

    202.99.160.50 换算成二进制为 11001010·01100011·10100000·00110010 

    255.255.255.0 换算成二进制为 11111111·11111111·11111111·00000000 

    2)将二者进行与运算 

     

     

     

    图5 

     

    3)将运算结果换算成十进制,这就是网络地址. 

    11001010·01100011·10100000·00000000换算成十进制就是202.99.160.0 

     

    现在我们就可以解答上面三种情况的通与不通的问题了. 

     

    1,从下面运算结果可以看出二台计算机的网络地址都为192.168.0.0且IP地址不同,所以可以通. 

     

     

    图6 

     

    2,从下面运算结果可以看出1号机的网络地址为192.168.0.0,2号机的网络地址为192.168.1.0 不在一个网络,所以不通. 

     

     

    图7 

     

    3,从下面运算结果可以看出1号机的网络地址为192.168.0.0,2号机的网络地址为192.168.0.192 不在一个网络,所以不通 

     

     

     

    图8 

     

    相信看到这应该明白了为何计算网络地址和如何计算了。

     

     

     

    • 子网掩码

    子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网的根据,最为简单的理解就是两台计算机各自的ip地址与子网掩码进行and运算后,得出的结果是相同的,则说明两台计算机处于同一子网络上,可以进行直接的通信。(如果计算出的网络地址不一样,但还是想要通信,这是就要理解网关了,下面将详细讲解)

     

     

    • 默认网关

     

    什么是网关呢?

     

    那么网关到底是什么?

     

    网关实质上是一个网络通向其他网络的IP地址。

     

    比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。

     

    如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机(如附图所示)。网络A向网络B转发数据包的过程。

    所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。那么这个IP地址是哪台机器的IP地址呢?网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。

    在和 Novell NetWare 网络交互操作的上下文中,网关在 Windows 网络中使用的服务器信息块 (SMB) 协议以及NetWare网络使用的 NetWare 核心协议 (NCP) 之间起着桥梁的作用。网关也被称为 IP路由器。

     

    举例说明

    假设你的名字叫小不点(很小),你住在一个大院子里,你的邻居有很多小伙伴,父母是你的网关。当你想跟院子里的某个小伙伴玩,只要你在院子里大喊一声他的名字,他听到了就会回应你,并且跑出来跟你玩。

    但是你家长不允许你走出大门,你想与外界发生的一切联系,都必须由父母(网关)用电话帮助你联系。假如你想找你的同学小明聊天,小明家住在很远的另外一个院子里,他家里也有父母(小明的网关)。但是你不知道小明家的电话号码,不过你的班主任老师有一份你们班全体同学的名单和电话号码对照表,你的老师就是你的DNS服务器。于是你在家里和父母有了下面的对话:

    1.小不点:妈妈(或爸爸),我想找班主任查一下小明的电话号码行吗?

    2.家长:好,你等着。(接着你家长给你的班主任挂了一个电话,问清楚了小明的电话)问到了,他家的号码是211.99.99.99

    3.小不点:太好了!妈(或爸),我想找小明,你再帮我联系一下小明吧。

    4.家长:没问题。(接着家长向电话局发出了请求接通小明家电话的请求,最后一关当然是被转接到了小明家家长那里,然后他家长把电话给转到小明).

    就这样你和小明取得了联系。

    网关例子

    网关概念来源于:http://baike.baidu.com/view/807.htm

     

    什么是默认网关 ?

    如果搞清了什么是网关,默认网关也就好理解了。就好像一个房间可以有多扇门一样,一台主机可以有多个网关。默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。现在主机使用的网关,一般指的是默认网关。

     

    如何设置默认网关 

     

    一台电脑的默认网关是不可以随随便便指定的,必须正确地指定,否则一台电脑就会将数据包发给不是网关的电脑,从而无法与其他网络的电脑通信。默认网关的设定有手动设置和自动设置两种方式。

     

    1. 手动设置 

     

        手动设置用于电脑数量比较少、TCP/IP参数基本不变的情况,比如只有几台到十几台电脑。因为这种方法需要在联入网络的每台电脑上设置“默认网关”,非常费劲,一旦因为迁移等原因导致必须修改默认网关的IP地址,就会给网管带来很大的麻烦,所以不推荐使用。 

     

    在Windows 9x中,设置默认网关的方法是在“网上邻居”上右击,在弹出的菜单中点击“属性”,在网络属性对话框中选择“TCP/IP协议”,点击“属性”,在“默认网关”选项卡中填写新的默认网关的IP地址就可以了。 

     

    需要特别注意的是:默认网关必须是电脑自己所在的网段中的IP地址,而不能填写其他网段中的IP地址。 

     

    2. 自动设置 

     

    自动设置就是利用DHCP(Dynamic Host Configuration Protocol, 动态主机配置协议)服务器来自动给网络中的电脑分配IP地址、子网掩码和默认网关 。这样做的好处是一旦网络的默认网关发生了变化时,只要更改了DHCP服务器中默认网关的设置,那么网络中所有的电脑均获得了新的默认网关的IP地址。这种方法适用于网络规模较大、TCP/IP参数有可能变动的网络。另外一种自动获得网关的办法是通过安装代理服务器软件(如MS Proxy)的客户端程序来自动获得,其原理和方法和DHCP有相似之处。由于篇幅所限,就不再详述了

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • 初始数据里面有数据的省、市、县、街道、门牌号等详细地址,但是这类的详细地址是无法利用现有的函数做可视化分析的,所以需要python调用高德地图的API查询经纬度。 第一步:注册密钥 在高德地图API上相关..
  • 制作自己的网站详细流程(可以上传自己...主机理解为,域名理解为家地址,这样你将你的网页放在家中,别人通过找到你家地址进到你家里,就能看到你的网页了。所以主机和域名是一个网站必须要有的。现在大部分的域名...
  • 小编提供的方法是一个比较完整的解决方案,并附有详细的实现细节。其实,如果你熟悉Windows的Sockets API,并了解一些底层的Winsock知识。那么要获得某台机器的IP地址并不是什么难事。一台机器可以装多块网卡,因此...
  • 本文主要说研究生落户,硕士以下学历可能需要一些其他材料,这个还要咨询或者去网上。 但是整体流程是一样的,就是可能准备材料变多了而已。 先说一下我的 自身信息 ,给大家做个参考: 研究生学历 外省 ...
  • IPV4与IPV6的区别(史上最详细

    万次阅读 多人点赞 2019-01-09 13:25:39
    地址由网络和主机部分组成,这取决于地址类。根据地址的前几位,可定义各种地址类:A、B、C、D 或 E。IPv4 地址的总数为 4 294 967 296。 IPv4 地址的文本格式为 nnn.nnn.nnn.nnn,其中 0&lt;=nnn&lt;=...
  • 那如何查自己电脑的IP地址和MAC地址呢。 1、使用Windows+R键打开“运行”窗口,然后输入CMD进入命令提示窗口 2、进入命令窗口之后,输入:ipconfig/all 回车即可看到整个电脑的详细的IP配置...
  • IP地址

    2016-12-22 21:06:14
    所谓IP地址就是给每个连接在Internet上的主机分配的一个32bit地址。按照TCP/IP协议规定,IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节。例如一个采用二进制形式的IP地址是...
  • 那你知道在Linux上还有什么其他命令可以查看IP地址吗?— ip addr 那你知道ifconfig和ip addr的区别吗?这是一个有关net-tools和iproute2的“历史”故事,你刚来到第三节,暂时不用了解这么细,但这也是一个常考的...
  • GitHub教程 Git Bash详细教程

    万次阅读 多人点赞 2018-01-17 16:12:58
    -`ω´-)所以我决定自己一边摸索一边记录,写教程造福那些理解力跟我一样差的人…… 第一篇教程会涉及如下内容(按照一般人的使用流程): 下载、登录Git Bash 如何在Git Bash中进入或者退出文件夹 ...
  • 百度到的ip和ipconfig到的不同1.1引出问题1.2不一样的原因2.IP地址分类2.1IP类别2.1 Public IP和Private IP3.总结:3.1整理上网流程3.2遗留问题 1.百度到的ip和ipconfig到的不同 IP可以分为Public IP 和 ...
  • 以下步骤 比较详细的介绍了 自己在安装docker for Windows 的过程笔记,集百家之所长,可能遇到的一些,问题,但基本是只知其一不知其二,需要各位看官自己研究了,与君共勉。 注意注意!!!!! 说在最前面win10 ...
  • 当在地址栏输入网址,按下回车 首先发生第一步(域名解析) 浏览器希望的到该域名的ip地址。DNS(域名系统)负责查找,查找的过程如下: 1.浏览器缓存中查找。 2.在系统缓存中查找,找系统的DNS缓存,即hosts文件中...
  • 查看ip地址

    2014-08-11 17:44:14
    怎样查看自己的ip地址,我的电脑本机IP是什么? IP地址分内网的外网两种,如果你是在家里上网并没有使用路由器的话,则不存在内网IP的问题,如果是在单位或学校,有许多朋友一起上网,那么就会有内网IP和外网IP之...
  • 详细说一下 如何在CentOS 7.x服务器上面部署自己的halo博客网站 如果你是程序员有云服务器部署经验,可以参考官方连接https://halo.run/archives/install-with-linux 下面是作者自己经验,写了写总结,大神勿喷哦! 前提...
  • 手动设置固定ipv6地址详细步骤: 首先在自动配置下,确保ipv6可以使用的情况下,查询网关,查询ipv6地址,获取可用的信息之后,再配置固定ipv6地址 ipv6测试 在网络中选用ipv6自动配置,看是否可以通外网。 测试...
  • 关于地址解析中文地址识别api接口的文章,看这一篇应该够了. 最近有个项目中要做到自动填写省市区电话姓名的效果. 以往填写地址都是手动选择 先上下拉动选择河北省--->再通过上下拉动选择沧州市--->再通过...
  • 什么是 IP 地址 IP 地址(Internet Protocol Address)也称为网间地址、网际地址。IP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写。IP地址是IP协议...
  • MySQL每个用户只对自己的记录有select权限原题再现1.运行环境2.创建习题中涉及到的用户3.创建测试所需的数据库和表4.向职工表中插入测试数据5.创建视图(这里划重点!)6.将视图的select权限授予给每个用户7.权限...
  • 操作系统复习(很详细,很详细,很详细

    千次阅读 多人点赞 2020-01-16 09:15:48
    输入队列:也叫作业池,在磁盘上等待调入进内存的进程 CPU产生的地址叫逻辑地址,也叫虚地址、可重定位地址 MMU:内存管理单元,完成虚地址到物理地址的映射 逻辑地址+基地址(存在于重定位寄存器也叫基地址寄存器...
  • linux详细操作指南

    万次阅读 2018-06-24 18:26:40
    c) home:用来存放用户自己的文件或目录,其中,超级用户root的目录是/root,而普通用户的目录被存放在/home目录下,并使用用户名作为最后一级目录(目录)的名称,如cat用户的目录为/home/cat d) dev目录...
  • Linux学习笔记(详细

    万次阅读 多人点赞 2019-06-22 15:11:27
    #回到自己目录 cd .. #回到上一级目录 2.8.4、mkdir mkdir [ 选项 ] 要创建的目录 #用于创建目录 # -p 创建多级目录 rmdir 目录 #删除指定目录 这个命令只能删除空的目录 rm -rf 目录...
  • HBase详细概述

    万次阅读 2017-10-09 12:48:44
    但是HDFS并不知道的hbase存的是什么,它只把存储文件是为二进制文件,也就是说,hbase的存储数据对于HDFS文件系统是透明的。下面是HBase文件在HDFS上的存储示意图。 HBase HRegion servers集群中的所有的region...
  • 计算机网络超详细笔记(五):网络层

    千次阅读 多人点赞 2020-08-15 07:11:21
    文章目录第五章 网络层5.1 网络层引言5.1.1 网络层概述5.1.2 数据报网络与虚电路网络5.1.3 课程总结5.2 IP地址5.2.1 IP概述5.2.2 IP地址表示形式5.2.3 IP地址的分类5.2.3 课程总结5.3 子网规划5.3.1 子网概念5.3.2 ...
  • NFS详细介绍

    万次阅读 2020-04-01 13:30:46
    NFS介绍 网络文件系统(network files system)简称NFS是一种基于TCP传输协议的文件共享习通。 NFS的CS体系中的服务端...域用户目录服务器。内容文件存储服务器。 NFS部署 安装: yum install nfs-utils -y 启动...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 61,627
精华内容 24,650
关键字:

如何知道自己家的详细地址