美文网首页
Android-域名查询总结2

Android-域名查询总结2

作者: Jeremy_Ji | 来源:发表于2018-09-02 09:10 被阅读24次

这次较上次的总结中新增了可以copy IP的功能,对文本框中现有的数据进行捕获并且进行处理(将查询信息中的格式解析成回行,让信息一条一条显示出来),只截取信息中的ip然后将其复制到系统剪切板,并且可以调用浏览器进行直接访问。

对查询信息中的文字处理

原本的信息中格式中有大量无用空格,这里将空格替换为回车
在上篇主函数showDnsIp()中对return的ip进行处理,把一个以上的空格全部替换为“\n”回车

  //将查询结果中的空格替换为回行
            ip = rec.toString().replaceAll("\\s+","\n");

格式如下图


ns-msg-type.png

当点击copy按钮时,会弹出dialog

copy ip的对话框

copy_ip_dialog.png

捕获字符串中的=ip并且将ip回传,因为用的java包中的函数查询出的格式为域名+端口号+in+查询类型+ip地址所以用数组可以把ip取出来。
用‘\n’把字符串切割成字符串数组可以把ip取出来,对应的其他错误格式则用字幕显示no ip fond。

    /**
     * 处理查询结果
     * 获取字符串中ip
     */
    public String copyIp(String address){
        String [] ip;
        String errorIp="Error:";
        String nullIP="Please enter domain name";
        //利用数组取出查询结果中的ip,回传ip,没有ip则回传空字符
        if (address.contains(errorIp)||address.equals("")||address.equals(nullIP)){
            ip= new String[]{"","","","",""};
        }else {
            ip=address.split("\n");
        }
        //格式:ip[0]域名,ip[1]端口号,ip[3]查询类型,ip[4]ip地址
        return ip[4];
    }

dialog的显示
设置好dialog的标题和内容,点击ok可以去粘贴,点击Open this url则调用默认的浏览器将ip打开。
其中访问浏览器需要用到intent,这里可以拓展为用户选定浏览器。记住dialog需要跟Toast一样最后要用.crate()和.show()将dialog显示

 /**
     *显示ip复制的dialog
     */
    public void showIpDialog(String mIp){

        AlertDialog.Builder mDialog=new AlertDialog.Builder(mAllActivity);
        mDialog.setMessage("You've copied this IP:\n"+"\t"+mIp);
        mDialog.setTitle(R.string.nslookup_dialog_title);
        //点击ok关闭对话框
        mDialog.setPositiveButton("ok", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.cancel();
            }
        });
        //点击左边按钮访问ip
        mDialog.setNegativeButton("Open this url", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                //访问复制到的ip
                Intent localIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://" + mIp));
                mAllActivity.startActivity(localIntent);
                dialog.cancel();
            }
        });
        mDialog.create();
        mDialog.show();
    }

点击按钮时copy Ip,并且弹出dialog

首先判断接到的信息是什么,若是字符串则显示字幕no ip fond,不是则将ip复制到剪切板并且创建dialog。
获取系统剪切板则需要使用到ClipboardManager剪切板管理器,用的时候创建对象并且赋值

 mCopyButton.setOnClickListener(new View.OnClickListener() {
            /**
             * 点击按钮复制ip
             * @param v
             */
            @Override
            public void onClick(View v) {
                //复制ip并且显示复制ip的dialog
                String ip=copyIp(mTextView.getText().toString());
                if (ip.equals("")){
                    Toast.makeText(mServerMonitor,R.string.nslookup_toast_msg,Toast.LENGTH_SHORT).show();
                }else {
                    //获取到剪贴板管理器
                    ClipboardManager mClipboardManager=(ClipboardManager)mAllActivity.
                            getSystemService(Context.CLIPBOARD_SERVICE);
                    //创建普通字符型ClipData
                    ClipData mClipData=ClipData.newPlainText("Lable",ip);
                    //放到系统剪切板
                    mClipboardManager.setPrimaryClip(mClipData);
                    showIpDialog(ip);
                }
                Log.d("---复制信息---"+ip);
            }
        });

这次算是对上次的域名查询功能上面做了一些补充,学习了一下Android中的使用浏览器访问ip和系统剪切板的使用。马上就要开学了,这个学年要学习更多东西,丰富自己努力提升。

相关文章

  • Android-域名查询总结2

    这次较上次的总结中新增了可以copy IP的功能,对文本框中现有的数据进行捕获并且进行处理(将查询信息中的格式解析...

  • Android-域名查询总结

    这一段时间在给项目新增一个NsLookup功能并且学习了一些东西,已经有两周没有写博客了,正好有时间来做个总结。先...

  • 网址的构成

    (1)、域名(https) (2)、域名(IP) (3)、端口号 (4)、资源路径 (5)、查询字符串

  • nslookup

    命令作用 查询域名正向解析; 查询域名逆向解析; 查询域; 命令用法 直接查询 进入nslookup交互查询 常用...

  • Android Studio 视图结构

    1、Tools->Android->Layout Inspector2、Tools->Android->Andro...

  • 浏览器中输入“www.xxx.com”之后都发生了什么

    1.浏览器发起DNS查询请求 2.域名服务器向客户端返回查询结果域名,从而完成域名到IP地址的转换。 3.客户端向...

  • 渗透测试之信息收集

    一、域名收集 二、whois 查询和whois反查 三、备案信息查询 1)ICP备案查询网 2)天眼查 四、利...

  • 网站子域名的查询

    子域名查询

  • 从输入URL到获取页面的完整过程

    1.查询DNS(域名解析),获取域名对应的IP地址 -查询浏览器缓存(浏览器会缓存之前拿到的DNS 2-30分钟时...

  • 信息收集

    拿到项目的域名: 1.域名最直观对应的信息 2.收集子域名 3.whois(注册人)信息查询 4.敏感目录 5.端...

网友评论

      本文标题:Android-域名查询总结2

      本文链接:https://www.haomeiwen.com/subject/bpwuwftx.html