public void AddrV4で取得した値からIpオブジェクトを再構築する(string ipStr) { //setUp var sut = new Ip((new Ip(ipStr)).AddrV4); var expected = ipStr; //exercise var actual = sut.ToString(); //verify Assert.That(actual, Is.EqualTo(expected)); }
public void Test(string host,int port) { //int port = 8080; //string host = "127.0.0.1"; var ip = new Ip(host); var listener = new TcpListener(ip.IPAddress, port); listener.Start(); _proxy.Connect(this, host, port, "TEST", ProxyProtocol.Http); Assert.AreEqual(_proxy.HostName,ip.ToString()); Assert.AreEqual(_proxy.Port,port); }
//public Lease(Logger logger, string fileName, Ip startIp, Ip endIp, int leaseTime, Dat2 macAcl) { public Lease(string fileName, Ip startIp, Ip endIp, int leaseTime, Dat macAcl) { //this.logger = logger; this.fileName = fileName; this.leaseTime = leaseTime; uint start = startIp.AddrV4; uint end = endIp.AddrV4; int count = 2048;//�ő�ێ��� for (uint i = start; i <= end && count > 0; i++) { Ip ip = new Ip(i); ar.Add(new OneLease(ip));//MAC�w��Ȃ� count--; } foreach (var o in macAcl) { if (o.Enable) {//�L���ȃf�[�^������Ώۂɂ��� string macStr = o.StrList[0];//MAC�A�h���X(99-99-99-99-99-99) Mac mac = new Mac(macStr); Ip ip = new Ip(o.StrList[1]);//IP�A�h���X if (ip.ToString() == "255.255.255.255") { ar.Add(new OneLease(ip, mac));//MAC�w�肠��őS���lj� } else { // ��{�ݒ�͈̔͂̃e�[�u������� bool find = false; for (int i = 0; i < ar.Count; i++) { if (ar[i].Ip == ip) { ar[i] = new OneLease(ip, mac);//MAC�w�肠��ɕύX find = true; break; } } if (!find) { // ��{�ݒ�͈̔͊O�̏ꍇ ar.Add(new OneLease(ip, mac));//MAC�w�肠��Ƃ��Ēlj� } } } } // ���[�X���f�[�^�̓ǂݍ��� Read(); }
public String Get(MailAddress to,String host,Ip addr) { //ユニークなID文字列の生成 var uidStr = string.Format("bjd.{0:D20}.{1:D3}", DateTime.Now.Ticks, _idCounter++); //日付文字列の生成 var date = Util.LocalTime2Str(DateTime.Now); var str = ""; if (_headerStr != null) { str = _headerStr; //Ver5.0.0-b5 $aと$hをkernel.ChangeTag()に送る前に修正する str = Util.SwapStr("$a", addr.ToString(), str); str = Util.SwapStr("$h", host, str); str = Util.SwapStr("$i", uidStr, str); str = Util.SwapStr("$t", to.ToString(), str); str = Util.SwapStr("$d", date, str); str = _kernel.ChangeTag(str); } return str; }
void AutoDeny(bool success, Ip remoteIp) { if (_attackDb == null) return; //�f�[�^�x�[�X�ւ̓o�^ if (!_attackDb.IsInjustice(success, remoteIp)) return; //�u���[�g�t�H�[�X�A�^�b�N if (!AclList.Append(remoteIp)) return; //ACL�������ېݒ�(�u������v�ɐݒ肳��Ă���ꍇ�A�@�\���Ȃ�) //�lj��ɐ��������ꍇ�A�I�v�V��������������� var d = (Dat)Conf.Get("acl"); var name = string.Format("AutoDeny-{0}", DateTime.Now); var ipStr = remoteIp.ToString(); d.Add(true, string.Format("{0}\t{1}", name, ipStr)); Conf.Set("acl", d); Conf.Save(Kernel.IniDb); //OneOption.SetVal("acl", d); //OneOption.Save(OptionIni.GetInstance()); Logger.Set(LogKind.Secure, null, 9000055, string.Format("{0},{1}", name, ipStr)); }
public bool Login(string user, Ip addr) { foreach (var oneUser in _ar) { if (oneUser.User != user) continue; if (oneUser.Login(addr.ToString())) { return true; } } return false; }
//�Ō�Ƀ��O�C���ɐ������������̎擾 (PopBeforeSMTP�p�j public DateTime LastLogin(Ip addr) { foreach (var oneMailBox in _ar.Where(oneMailBox => oneMailBox.Addr == addr.ToString())){ return oneMailBox.Dt; } return new DateTime(0); }
void Log(SockUdp sockUdp,int messageNo, Mac mac,Ip ip,DhcpType type) { string macStr = mac.ToString(); foreach (var m in _macAcl) { if (m.StrList[0].ToUpper() == mac.ToString()) { macStr = string.Format("{0}({1})",mac,m.StrList[2]); break; } } Logger.Set(LogKind.Detail, sockUdp, messageNo, string.Format("{0} {1} {2}", macStr, (ip == null) ? "0.0.0.0" : ip.ToString(), type.ToString())); }
//Ver6.0.1以前 // public AclList(IEnumerable<OneDat> dat, int enableNum, Logger logger) { // _enable = (enableNum == 1); // _logger = logger; // if (dat == null) { // return; // } // foreach (var o in dat) { // if (!o.Enable) { // continue; // } // //有効なデータだけを対象にする // var name = o.StrList[0]; // var ipStr = o.StrList[1]; // // if (ipStr == "*") { // //全部 // try { // var acl = new AclV4(name, ipStr); // _arV4.Add(acl); // } catch (ValidObjException) { // logger.Set(LogKind.Error, null, 9000034, string.Format("Name:{0} Address {1}", name, ipStr)); // } // try { // var acl = new AclV6(name, ipStr); // _arV6.Add(acl); // } catch (ValidObjException) { // logger.Set(LogKind.Error, null, 9000034, string.Format("Name:{0} Address {1}", name, ipStr)); // } // } else if (ipStr.IndexOf('.') != -1) { // //IPv4ルール // try { // var acl = new AclV4(name, ipStr); // _arV4.Add(acl); // } catch (ValidObjException) { // logger.Set(LogKind.Error, null, 9000034, string.Format("Name:{0} Address {1}", name, ipStr)); // } // } else { // //IPv6ルール // try { // var acl = new AclV6(name, ipStr); // _arV6.Add(acl); // } catch (ValidObjException) { // logger.Set(LogKind.Error, null, 9000034, string.Format("Name:{0} Address {1}", name, ipStr)); // } // } // } // } //ACLリストへのIP追加 ダイナミックにアドレスをDenyリストに加えるためのメソッド<br> //追加に失敗した場合、Loggerにはエラー表示されるが、追加は無効(追加されない) public bool Append(Ip ip) { if (!_enable){ return false; } if (ip.InetKind == InetKind.V4){ if (_arV4.Any(a => a.IsHit(ip))){ return false; } } else{ if (_arV6.Any(a => a.IsHit(ip))){ return false; } } var dt = DateTime.Now; var name = string.Format("AutoDeny-{0}", dt.ToString()); if (ip.InetKind == InetKind.V4){ try{ var acl = new AclV4(name, ip.ToString()); _arV4.Add(acl); } catch (ValidObjException){ _logger.Set(LogKind.Error, null, 9000034, string.Format("Name:{0} Address {1}", name, ip)); } } else{ try{ var acl = new AclV6(string.Format("AutoDeny-{0}", dt.ToString()), ip.ToString()); _arV6.Add(acl); } catch (ValidObjException){ _logger.Set(LogKind.Error, null, 9000034, string.Format("Name:{0} Address {1}", name, ip)); } } return true; }
//bool CheckAuthList(string requestUri) { // // 【注意 ショートファイル名でアクセスした場合の、認証の回避を考慮する必要がある】 // //AnsiString S = ExtractShortPathName(ShortNamePath); // var authList = (Dat)this.Conf.Get("authList"); // foreach (var o in authList) { // if (!o.Enable) // continue; // string uri = o.StrList[0]; // if (requestUri.IndexOf(uri) == 0) { // return false; // } // } // return true; //} void AutoDeny(bool success, Ip remoteIp) { if (_attackDb == null) return; //データベースへの登録 if (!_attackDb.IsInjustice(success, remoteIp)) return; //ブルートフォースアタック if (AclList.Append(remoteIp)) {//ACL自動拒否設定(「許可する」に設定されている場合、機能しない) //追加に成功した場合、オプションを書き換える var d = (Dat)Conf.Get("acl"); var name = string.Format("AutoDeny-{0}", DateTime.Now); var ipStr = remoteIp.ToString(); d.Add(true, string.Format("{0}\t{1}", name, ipStr)); Conf.Set("acl", d); Conf.Save(Kernel.IniDb); Logger.Set(LogKind.Secure, null, 9000055, string.Format("{0},{1}", name, ipStr)); } else { Logger.Set(LogKind.Secure, null, 9000056, remoteIp.ToString()); } }
public void 文字列のコンストラクタで生成してToStringで確認する(string ipStr, string expected) { //setUp var sut = new Ip(ipStr); //exercise var actual = sut.ToString(); //verify Assert.That(actual, Is.EqualTo(expected)); }
public void SaveDfTest(string user, bool status, string uid, int size, string hostname, string from, string to) { var mail = new Mail(); var ip = new Ip("10.0.0.1"); var mailInfo = new MailInfo(uid, size, hostname, ip, new MailAddress(from),new MailAddress(to)); var b = sut.Save(user, mail, mailInfo); //メールボックス内に蓄積されたファイル数を検証する var path = string.Format("{0}\\{1}", sut.Dir, user); var di = new DirectoryInfo(path); if (status){ Assert.AreEqual(b,true);//保存成功 var files = di.GetFiles("DF_*"); //メールボックス内に蓄積されたファイル数を検証する var lines = File.ReadAllLines(files[0].FullName); Assert.AreEqual(lines[0], uid); //1行目 uid Assert.AreEqual(lines[1], size.ToString()); //2行目 size Assert.AreEqual(lines[2], hostname); //3行目 hostname Assert.AreEqual(lines[3], ip.ToString()); //4行目 ip Assert.AreEqual(lines[7], from); //8行目 from Assert.AreEqual(lines[8], to); //9行目 to }else{ Assert.AreEqual(b, false);//保存失敗 Assert.AreEqual(Directory.Exists(di.FullName),false); } }