А вы знаете, сколько портов у вас на компьютере? А что такое порт, порт - это обычно соединение (физическое или логическое), через которое принимаются и отправляются данные в компьютерах.
Наиболее часто портом называют:
- Аппаратный порт — специализированный разъём в компьютере, предназначенный для подключения оборудования определённого типа.
- Порт ввода-вывода — используется в микропроцессорах (например, Intel) и микроконтроллерах (например, PIC, AVR) при обмене данными с аппаратным обеспечением. Порт ввода-вывода сопоставляется с тем или иным устройством и позволяет программам обращаться к нему для обмена данными.
- Сетевой порт — параметр протоколов TCP и UDP.
Мы будем разговаривать о сетевых портах. И так, количество портов легко можно выяснить с помощью библиотеки System.Net. В этой библиотеки есть класс IPEndPoint со параметром MinPort. Он определяет минимальное значение, которое может присваиваться свойству System.Net.IPEndPoint.Port, т.е. начальный порт, который вам доступен для подключения. К примеру, вы можете воспользоваться им для сканирования портов компьютера через TcpClient(смотрите Создание Port Scanner с C#), указав при соединении как начальный порт. Так же у IPEndPoint есть параметр как MaxPort. Он определяет максимальное значение, которое может присваиваться свойству System.Net.IPEndPoint.Port. Значение MaxPort установлено равным 0x0000FFFF, т.е. максимальный порт у вас 2^16 = 65536. Оба параметра доступны только для чтения. Смотрите пример ниже:
for (int Port = IPEndPoint.MinPort; Port < IPEndPoint.MaxPort; Port++)
{
listBox1.Items.Add(string.Format("port {0} : ", Port));
}
Для работы с примером, вам необходимо подключить пространство имен:
using System.Net;
Иногда необходимо произвести проверку на валидность введенного IP адреса. Для выполнения данной задачи воспользуемся регулярными выражениями.
Первое что необходимо сделать, это подключить пространство имен :
using System.Text.RegularExpressions;
Далее мы инициализируем новый экземпляр класса System.Text.RegularExpressions.Regex для регулярного выражения "\b(?:\d{1,3}\.){3}\d{1,3}\b" и функцией IsMatch выполняем проверку обнаружено ли в указанной входной строке соответствие регулярному
выражению, заданному в конструкторе System.Text.RegularExpressions.Regex, если да то возвращаем true, если нет то false. Смотрите код, приведенный ниже:
static bool IsIpAddress(string Address)
{
//Инициализируем новый экземпляр класса System.Text.RegularExpressions.Regex
//для указанного регулярного выражения.
Regex IpMatch = new Regex(@"\b(?:\d{1,3}\.){3}\d{1,3}\b");
//Выполняем проверку обнаружено ли в указанной входной строке соответствие регулярному
//выражению, заданному в конструкторе System.Text.RegularExpressions.Regex.
//если да то возвращаем true, если нет то false
return IpMatch.IsMatch(Address);
}
Пример использования данной функции:
private void button1_Click(object sender, EventArgs e)
{
if (IsIpAddress(textBox1.Text) == true)
{
MessageBox.Show("true");
}
else
{ MessageBox.Show("false"); }
}
Бывает, что удалённая/виртуальная машина установлена и необходимо создать пользователей/базы данных и раздать им права, а ставить phpmyadmin не хочется. Или просто блеснуть умением работать с пользователя mysql из консоли перед коллегами ;)
Для начала необходимо войти под суперпользователем:
mysql -u root -p
После ввода пароля мы окажемся в консоле mysql.
Создадим пользователя test с localhost и паролем 'password'.
create user 'test'@'localhost' identified by 'password';
Пользователь создан. Для проверки посмотрим список пользователей:
select user,host,password from mysql.user;
Создадим базу данных testdb.
create database testdb;
Дадим пользователю test полные права на базу testdb
grant all on testdb.* to 'test'@'localhost'
Удалим пользователя 'test'@'localhost'
drop user 'test'@'localhost'
Если вы создали пользователей для разных хостов и хотите всех удалить, то необходимо удалить их по одному через команду 'drop user' с указанием хоста
Внимание! Команда 'DROP USER' не закрывает автоматически все сессии открытые удаляемым пользователем. Если пользователь с открытой сессией был удалён, то удаление не будет иметь эффекта до закрытии сессии пользователем. После закрытия сессии следующая попытка входа в систему пользователем которого удалили не удастся.
Удаляем базу testdb
drop database testdb;
... из области уведомений
Данный код поможет вам реализовать сворачивание/разворачивание консольного приложения в область уведомлений, а так же выводить сообщения ShowBalloonTip.
[DllImport("user32.dll")]
private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
[DllImport("kernel32.dll", ExactSpelling = true)]
private static extern IntPtr GetConsoleWindow();
static void Main(string[] args)
{
ShowWindow(GetConsoleWindow(), 0);//сворачиваем в область уведомлений
//Указываем компонент, который создает значок в области уведомлений.
//Этот класс не может наследоваться.
NotifyIcon icon = new NotifyIcon();
//задаем текущий значок.
icon.Icon = new Icon("1.ico");//иконка расположена рядом с exe файлом
//задаем значение, указывающее, виден ли значок в области уведомлений
//в панеле задач.
icon.Visible = true;
//задаем текст подсказки, отображаемый при наведении указателя
//мыши на значок в области уведомлений.
icon.Text = "Свернутое консольное приложение";
//Отображаем всплывающую подсказку с указанным заголовком, текстом и значком
//в панеле задач в течении заданного периода времени.
icon.ShowBalloonTip(2000,"Скрытое консольное приложение","Скрытие выполнено успешно!",ToolTipIcon.Info);
ShowWindow(GetConsoleWindow(), 1);//показываем
icon.Visible = true; //убираем иконку из области уведомений
Console.ReadKey();
}
Для работы вам понадобится подключить следующеие пространства имен:
using System.Runtime.InteropServices;
using System.Windows.Forms;
using System.Text;
using System.Data;
using System;
using System.Drawing;