网络正常只有自己访问网站异常一度让你怀疑,是不是被黑了!域名解析异常是如何发生的,如何解决处理及C#编程实现一键修改Hosts文件

首先大家要知道在浏览器上浏览虚拟主机,必须使用Hosts文件或域名系统(DNS)实现主机名到IP地址的解析。在局域网中用Hosts文件或DNS都可以,在Internet上只能用DNS了。

1.当用户输入一个域名以百度为例(www.baidu.com)。

2.首先会到C:\Windows\System32\drivers\etc目录中用Hosts文件去查询相关的IP是否存在,如果存在就会访问该IP地址。

3.不存在该域名解析,那么就会到公网DNS查找。

当你访问域名出现异常,可能Hosts文件被修改了或者DNS被挟持了。

解决方案:

1.首先检查你的C:\Windows\System32\drivers\etc目录下的Hosts文件查看是否存在域名强制转向IP的情况,有的话把这个选项去掉。找不到文件设置隐藏文件可见。

2.DNS被劫持或篡改了。你可以手动修改本地电脑的DNS,默认为空如下图,你可以在首选设置为:114.114.114.114,备用设置为:114.114.115.115;并查杀一下病毒。或者你的路由器被篡改了(设置的密码太弱),建议用修复工具修改。

上面介绍了网络正常域名访问出问题的原因,那么下面就带大家使用C#搞一个Hosts修改工具(大家可以来研究,了解技术,但是不要用来恶搞他人):

private static void updateHosts(string ip,string domain)
        {
            string path = @"C:\WINDOWS\system32\drivers\etc\hosts";
            //通常情况下这个文件是只读的,所以写入之前要取消只读
            File.SetAttributes(path, File.GetAttributes(path) & (~FileAttributes.ReadOnly));//取消只读
            //1.创建文件流
            FileStream fs =ip==""? new FileStream(path, FileMode.Create): new FileStream(path, FileMode.Append);
            //2.创建写入器
            StreamWriter sw = new StreamWriter(fs, Encoding.UTF8);
            //3.开始写入
            bool result = false;//标识是否写入成功
            try
            {
                StringBuilder sb = new StringBuilder();
                sb.Append(ip);//IP地址
                sb.Append("   ");
                sb.Append(domain);//网址
                sw.WriteLine(sb.ToString());
                result = true;
            }
            catch (Exception ex)
            {
                result = false;
            }
            finally
            {
                //4.关闭写入器
                if (sw != null)
                {
                    sw.Close();
                }
                //5.关闭文件流
                if (fs != null)
                {
                    fs.Close();
                }
            }
            if (result == true)
            {
                MessageBox.Show("成功!");
                File.SetAttributes(path, File.GetAttributes(path) | FileAttributes.ReadOnly);//设置只读
            }
            else
            {
                MessageBox.Show("失败!");
                return;
            }
        }

在网址部分输入www.baidu.com,之后添加试试看,你还能访问百度吗?

没关系,之后你点清除,你又可以访问了!

源码地址:https://files.cnblogs.com/files/jiyuwu/HostsEdit.zip

原文地址:https://www.cnblogs.com/jiyuwu/p/9434140.html

时间: 2024-10-07 17:59:20

网络正常只有自己访问网站异常一度让你怀疑,是不是被黑了!域名解析异常是如何发生的,如何解决处理及C#编程实现一键修改Hosts文件的相关文章

给大家分享web开发新手修改hosts文件实现本地域名访问的正确方法

1.如何正确修改hosts文件: 一般打开hosts文件里面都会有个示例,按照其格式修改即可 比如以下内容: # For example: # # 102.54.94.97 rhino.acme.com # source server # 38.25.63.10 x.acme.com # x client host 即代表打开rhino.acme.com这个网址将解析到102.54.94.97,ip地址与网址间至少有一空格,当然建议通过按Table键来编辑,即美观又不容易编写失误;这也就是通过解

小兴趣:修改Hosts文件,禁止访问指定网页

不知道Hosts文件什么鬼的朋友可以在网上搜索一下(大牛勿喷- -) 访问网址时,先查询本地的Hosts文件,那么如果我们将Hosts文件中的网址与IP的映射修改之后,将访问错误的IP. 如在文件尾追加:127.0.0.1 www.baidu.com 正常情况没有管理员以上的权限,是无法修改Hosts文件的(进程注入,创建服务,篡改注册表,直接拿System权限的,求无视) 方法1:在用户组中,将当前系统用户提权为Administrator权限 方法2:将原Hosts文件拷贝副本,修改后粘贴回去

修改hosts文件打开google网站

很炒蛋,使用google搜索的时候经常打不开,原因大家都应该知道,使用翻墙 代理等一些手段也许就可以的,不过这感觉很麻烦.我们直接修改系统的 hosts文件. window系统hosts文件地址C:\WINDOWS\system32\drivers\etc.将下面的内容copy到host文件中就可以了. #Google Services START 203.208.46.200 0.docs.google.com 203.208.46.200 0.drive.google.com 203.208

用修改hosts的方式来屏蔽某些网站

首先呢,来自知乎的一些问答:修改 hosts 文件可以上一些墙内屏蔽的网站,其原理是什么? (然而通过增/改hosts的方法来FQ已经失效很久了) 然后呢,也可以通过修改hosts来达到屏蔽某些网站的效果:(以度娘测试) 1.用文本编辑器打开hosts文件(可能需要管理员权限) (mac) $ vi /etc/hosts 2. 在最后加上一行 127.0.0.1 www.baidu.com 保存退出,OK 现在在浏览器敲入度娘地址就会显示无法访问了. hosts相当于一个字典,如果查到输入的域名

本地pc机域名访问hosts文件处理

服务器在网络中没有做域名解析时,pc机只能通过ip地址访问,想要域名访问可更改本地pc机的hosts文件: 本机中hosts文件修改 windows下在C:\Windows\System32\drivers\etc下有hosts文件,使用记事本打开 linux在/etc/hosts  文件------vim  /etc/hosts 编辑 编辑"ip地址+table键+域名"    正向域名解析 编辑"域名+table键+ip地址"    反向域名解析        

命令行修改文件文件夹访问权限 cacls, 修改hosts内容方法

背景 日常使用Windows的过程中,hosts(C:\Windows\System32\drivers\etc)文件可能被一些程序串改,因此在网上找到禁止/允许修改hosts文件的bat脚本,但是在使用过程中有遇到了新的麻烦,特记录下相关问题的解决方法. 禁止/允许修改hosts文件的bat脚本 Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联"数据库",当用户在浏览器中输入一个需要登录的网址时,系统会首先自动

解决4G网络移动打不开网站,WiFi可以正常访问

一.解决4G网络移动打不开网站,WiFi可以打开1.把域名放进http://ping.chinaz.com,看看解析IP延迟是否过高2.询问WiFi能打开网站,4G网络打不开网站的人,是不是本地网络出问题或者只有移动4g,其他运营商是不是都能访问3.单独新增移动解析线路,更换默认解析线路,看看移动4g或者WiFi是否正常打开原因:默认解析IP延迟过高,导致手机网站加载过慢. 原文地址:http://blog.51cto.com/8999a/2156445

Java网络编程从入门到精通(3):为什么不能直接通过IP访问网站

在<创建InetAddress对象的四个静态方法>一文中通过getAllByName得到了www.csdn.net对应的四个IP地址.从理论上说,在IE(或其他的Web浏览器,如Firefox)的地址栏中输入这四个IP地址中的任何一个,都可能访问www.csdn.net.如输入http://211.100.26.124.但IE却返回了一个错误信息.在输入另外三个IP后,都会得到同样的错误信息. 这个错误并不是网页未找到错误(HTTP状态号:404),而是拒绝访问错误(HTTP状态号:403).

linux网络编程-----实现并发访问网站------

一般在测试多并发服务器的时候需要使用多路进程访问,这时需要自己来编写测试的并发访问功能. 直接上代码: #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <signal.h> #include <sys/wait.h> //回收子进程 void wait_child(int num){ while(0 < waitpid(0, NULL, WNOHANG)