c# 通过程序修改hosts文件

摘要:
1根据ip替换varOSInfo=Environment.OSVersion;stringpathpart="hosts";if(OSInfo.Platform==PlatformID.Win32NT){//iswindowsNTpathpart="system32\drivers\etc\hosts";}stringhostfile=Path.Combine(Environment.GetFol

1 根据ip替换

var OSInfo =Environment.OSVersion;
string pathpart = "hosts";
if (OSInfo.Platform ==PlatformID.Win32NT)
{
    //is windows NT
    pathpart = "system32\drivers\etc\hosts";
}
string hostfile =Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), pathpart);

const string tales = "123.123.123.123 download.talesrunner.com";
if (!((IList)File.ReadAllLines(hostfile)).Contains(tales)) { File.AppendAllLines(hostfile, newString[] { tales }); }

2 根据域名替换

 const string tales = "123.123.123.123 download.talesrunner.com";
    string[] lines =File.ReadAllLines(hostfile);

    if (lines.Any(s => s.Contains("download.talesrunner.com")))
    {
        for (int i = 0; i < lines.Length; i++)
        {
             if (lines[i].Contains("download.talesrunner.com"))
                 lines[i] =tales;
        }
        File.WriteAllLines(hostfile, lines);
    }
    else if (!lines.Contains(tales))
    {
        File.AppendAllLines(hostfile, newString[] { tales });
    }

3 直接追加

public static bool ModifyHostsFile(stringentry)    
{    
    try{    
        using (StreamWriter w = File.AppendText(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), @"driversetchosts")))    
        {    
            w.WriteLine(entry);    
            return true;    
        }    
    }    
    catch(Exception ex)    
    {    
        Console.WriteLine(ex.Message);    
        return false;    
    }    
}  

免责声明:文章转载自《c# 通过程序修改hosts文件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇c#socket发送邮件详解springboot中的AOP开发下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Javaweb统计在线人数的小栗子

最近在学习Javaweb相关的内容(不黑不吹之前对web开发零基础),下面通过一个统计在线人数的小栗子讲讲Servlet监听器吧 开发环境 eclipse  tomcat 7 先说说这个小栗子的构思:         首先要考虑的就是通过什么方式能够统计在线人数?很容易想到可以通过session来统计在线人数为什么不是request呢?因为request在...

RedisDump安装以及常见错误

安装redisdump大部分问题都出在版本的问题,redis-dump是将redis和json互转的工具;redis-dump是基于ruby开发,需要ruby环境,而且新版本的redis-dump要求2.3.0及以上的ruby版本,centos中yum只能安装2.0版本的ruby。需要先安装ruby的管理工具rvm安装高版本的ruby。 rvm安装以及常见...

python ORM框架:SqlAlchemy

  ORM,对象关系映射,即Object Relational Mapping的简称,通过ORM框架将编程语言中的对象模型与数据库的关系模型建立映射关系,这样做的目的:简化sql语言操作数据库的繁琐过程(原生sql的编写及拼接等),转而直接使用对象模型来操作数据库做替代 第一部分       SqlAlchemy本身无法直接操作数据库,它是建立在第三...

Java调用Http/Https接口(8,end)OkHttp调用Http/Https接口

OkHttp是一个高效的HTTP客户端,在Android中用的比较多,也可以用在Java中;本文主要介绍OkHttp在java中的使用,文中所使用到的软件版本:Java 1.8.0_191、SpringBoot2.2.1.RELEASE。 1、OkHttp特点 a、支持HTTP/2,允许所有同一个主机地址的请求共享同一个socket连接b、连接池减少请求延...

.net中RSA加密解密

1、产生密钥: private static void CreateKey() { using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider()) { string public...

开发规约(一)接口统一返回值格式

一、前言 上篇在介绍 Spring Boot 集成 Dubbo 时,埋下了有关返回值格式的一个小小伏笔。本篇将主要介绍一种常用的返回值格式以及通过什么手段去达成这个目的。 二、Dubbo 接口统一返回值格式 我们在应用中经常会涉及到 server 和 client 的交互,目前比较流行的是基于 json 格式的数据交互。但是 json 只是消息的格式,其...