Народ, есть проблема пишу на C# программу которая отправляет, ICMP Redirect Host сообещние, делаю машину шлюзом, отправляю с неё сообщение на узел, ноль рекации, маршрут не меняется, и arp запросы к новому шлюзу тоже не идут, хотя снифер, говорит что сообщение отправленно, может я что-то в протоколе не понимаю, но rfc прочитал. в чем трабл? Code: public class my_icmp { public byte Type; public byte Code; public UInt16 Checksum; // public byte[] gateway = new byte[4]; public int MessageSize; public byte[] Message = new byte[1024]; public my_icmp() { } public my_icmp(byte[] data, int size) { Type = data[20]; Code = data[21]; Checksum = BitConverter.ToUInt16(data, 22); MessageSize = size - 24; Buffer.BlockCopy(data, 24, Message, 0, MessageSize); } public byte[] getBytes() { byte[] data = new byte[MessageSize + 9]; Buffer.BlockCopy(BitConverter.GetBytes(Type), 0, data, 0, 1); Buffer.BlockCopy(BitConverter.GetBytes(Code), 0, data, 1, 1); Buffer.BlockCopy(BitConverter.GetBytes(Checksum), 0, data, 2, 2); Buffer.BlockCopy(Message, 0, data, 4, MessageSize); return data; } public UInt16 getChecksum() { UInt32 chcksm = 0; byte[] data = getBytes(); int packetsize = MessageSize + 8; int index = 0; while (index < packetsize) { chcksm += Convert.ToUInt32(BitConverter.ToUInt16(data, index)); index += 2; } chcksm = (chcksm >> 16) + (chcksm & 0xffff); chcksm += (chcksm >> 16); return (UInt16)(~chcksm); } } private void main_button_Click(object sender, EventArgs e) { byte[] data = new byte[1024]; int recv; Socket icmp_mess = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Icmp); IPEndPoint iep = new IPEndPoint(IPAddress.Parse(IP_txtbox.Text), 0); EndPoint ep = (EndPoint)iep; my_icmp packet = new my_icmp(); packet.Type = 0x05; packet.Code = 0x01; packet.Checksum = 0; /* packet.gateway[0] = 0x0A; packet.gateway[1] = 0x0A; packet.gateway[2] = 0x10; packet.gateway[3] = 0x97;*/ Buffer.BlockCopy( BitConverter.GetBytes((short)1), 0, packet.Message, 0, 2); Buffer.BlockCopy( BitConverter.GetBytes((short)1), 0, packet.Message, 2, 2); data = Encoding.ASCII.GetBytes(Data_TxtBox.Text); Buffer.BlockCopy(data, 0, packet.Message, 4, data.Length); packet.Message[0] = 0x0A; packet.Message[1] = 0x0A; packet.Message[2] = 0x10; packet.Message[3] = 0x99; packet.MessageSize = data.Length + 4; int packetsize = packet.MessageSize +4; UInt16 chcksum = packet.getChecksum(); packet.Checksum = chcksum; icmp_mess.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 3000); icmp_mess.SendTo(packet.getBytes(), packetsize, SocketFlags.None, iep); //icmp_mess. try { data = new byte[1024]; recv = icmp_mess.ReceiveFrom(data, ref ep); } catch (SocketException) { // Console.WriteLine("No response from remote host"); Output_edit.Text += "No response from remote host"; return; } my_icmp response = new my_icmp(data, recv); Output_edit.Text += ep.ToString(); Output_edit.Text += response.Type; Output_edit.Text += response.Code; int Identifier = BitConverter.ToInt16(response.Message, 0); int Sequence = BitConverter.ToInt16(response.Message, 2); Output_edit.Text += Identifier; Output_edit.Text += Sequence; string stringData = Encoding.ASCII.GetString(response.Message, 4, response.MessageSize - 4); Output_edit.Text += stringData; icmp_mess.Close(); } }
сегодня наткнулся при поиске другого, внимательно не смотрел, но издалека похоже (правда сокеты): http://www.example-code.com/vbdotnet/socket_socks_proxy.asp
Огромная просьба... Кто может переписать на c# ? PHP: function getCI($url) { $url = str_replace("www.", "", $url); $ci_url = "http://bar-navig.yandex.ru/u?ver=2&show=32&url=http://www.".$url."/"; $ci_data = implode("", file("$ci_url")); preg_match("/value=\"(.\d*)\"/", $ci_data, $ci); if ($ci[1] == "") return 0; // Если не смогли определить ТИЦ... else return $ci[1]; // Вот оно счастье... }
http://4italka.okis.ru/ Классный сайт практически только хорошие книги сам прочел большую часть книги по программированию на языках Assembler,Delphi,Pascal.DirectX 9.OpenGL,C++,C#,Cи,Java,Visual Basic,Visual Studio.NET,Perl, Хакинг,Win32api
надо проверить хост на валидность, делаю функцией DNS.GetHostAddresses("hostname.ru"); при удачном выполнении функция возвращает ИП, а если такого демена нету то вылетает ошибка программы. Охото что бы в программе определялось существует домен или нет типа если да то 1 если нет то 0.
PHP: using System; using System.Net; using System.Net.Sockets; class temp { private static bool CheckDNS(string host) { try { Dns.GetHostAddresses(host); } catch (SocketException ex) { return false; } return true; } static void Main() { Console.WriteLine(CheckDNS("sdaasda")); Console.WriteLine(CheckDNS("ya.ru")); Console.ReadLine(); } }
Вчера взял заказ на написание сетевой проги, узнав что писать нада на Indy - обрадовался, и без замедления принял заказ. Но когда углубился в ТЗ и увидел что использоваться должны компоненты с Indy 10 - подофигел! Стандартные работы с Инди9 тут не подходят - меня это сильно обеспокоило! Прозьба к шарящим людям - помочь!!! вот старый сорц работы с Инди9 procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread); begin if AThread.Connection.ReadLn=('Msg') then ShowMessage('Hello Luser'); AThread.Connection.Disconnect; end; код не мой, и на паскале. вопрос вот в чём! Куда пропало AThread: TIdPeerThread и вообще ReadLn и WriteLn ??? Мож кто продемонстрирует как идёт отправка сообщения на Инди10 ?
Народ помогите пожалуйста найти ошибочку в коде... (Java) Кину код функции которая должна архивировать данные... Code: public static void packing(){//File path, String fileName){ try{ BufferedImage image = ImageIO.read(new File("X:/workspace/Java project/K-RLEArhivator/test/avatar77547.gif")); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); ImageIO.write(image, "jpg", outputStream); byte[] data = outputStream.toByteArray(); System.out.println(outputStream.size()); FileOutputStream out = new FileOutputStream("file.dat"); int temp = 0; for(int i = 0; i < data.length; i++){ temp = i; while(data[i] != data[i+1]) { packingData[index] = 00; count++; i++; } packingData[++index] = (byte) count; for(int index_c = 0; index_c <= count; index_c++){ packingData[++index] = data[temp++]; } count = 0; temp = i; while(data[i] == data [i+1]){ count2++; i++; } packingData[index] = (byte) ++count2; packingData[++index] = data[temp]; count2 = 0; i++; temp = i; while(data[i] == data[i+1]){ count2++; i++; loop = true; } if(loop){ packingData[++index] = (byte) count2; packingData[++index] = data[temp]; count2 = 0; loop = false; } index++; } for(int b = 0; b < packingData.length; b++) { out.write(packingData[b]); } } catch(IOException ioe){ ioe.printStackTrace(); } Размерность аватарки - 19,725. 1)Проблема в том что когда я загружаю побайтово данные в массив data получаю размерность массива 3,523. 2)После запуска программы получаю сл ошибку: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3523 at Archiver.packing(Class_Main.java:49) at Class_Main.main(Class_Main.java:16)
допустим на форме 10 кнопок, как сделать, чтобы по нажатию на первую кнопку изменился текст на случайной кнопке?
первое что приходит в голову - загнать в массив все баттоны - рандомом выбирать один из массива - и свойству текст - присваивать текст!
PHP: var arr = Controls.OfType<Button>().ToArray(); arr[new Random().Next(arr.Length)].Text = "test"; вот так проще некуда. .NET Framework 3.5 нужен. LINQ
Здрваствуйте, незнаю, втот ли я под форум попал, но у меня проблема такова. Скачал Microsoft Visual Studio 8, когда я компилирую исходник, то мне пишет это Code: 1>C:\Program Files\Microsoft Visual Studio 8\VC\include\windows.h(30) : warning C4068: unknown pragma 1>C:\Program Files\Microsoft Visual Studio 8\VC\include\windows.h(190) : fatal error C1083: Cannot open include file: 'windef.h': No such file or directory 1>Build log was saved at "file://c:\Documents and Settings\senap\Рабочий стол\programma\Release\BuildLog.htm" И exe не получается...
>>Не удается открыть файл : "windef.h ': Нет такого файла или директории Найди его самостоятельно, и подружи с компилятором. И будет тебе exe. пэ.эс. приду домой напишу как это сделать
Есть такая проблема: Code: import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Tester { /** * @param args */ public static void main(String[] args) { try { // The newInstance() call is a work around for some // broken Java implementations Class.forName("com.mysql.jdbc.Driver").newInstance(); } catch (Exception ex) { // handle the error System.out.println("No class: " + ex.getMessage()); } Connection conn = null; try { conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","ss88",""); conn.close(); } catch (SQLException ex) { // handle any errors System.out.println("SQLException: " + ex.getMessage()); System.out.println("SQLState: " + ex.getSQLState()); System.out.println("VendorError: " + ex.getErrorCode()); } } } Пытаюсь подключиться к серверу МуСкула и получаю вылетающее исключение С чем это может быть связано? Ведь я еще никаких запросов не делал, а сервер мне уже про синтаксис кричит...
Факинг-перефакинг, все здесь работает, если компилить и запускать вручную, исключение вылетает только если запускать на выполнение в eclipse. Блин, до чего ненавижу такие баги Странно то, что под Вендой Эклипс корректно запускает этот код... Хотя сервак один и тот же...
привет всем вобщем я начинающий. мне посоветовали чтобы перехвативать сообщения\события в программах hook и dll inject. тк я новичек начал искать информацию в поисковиках. так вот либо ссылки на форумы где нужно регистрироватся либо написано не на C# либо пример есть но я его даже скомпилировать немогу ошибки какие нибудь все время. в гугле поискал но по английскому сломаю голову переводить никто не подскажет какуюнибудь КНИГУ или хороший ресурс где эти 2 темы НОРМАЛЬНО освещены с примерами или исходниками желательно по русски?