Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将服务名称转换为端口_C#_Windows - Fatal编程技术网

C# 将服务名称转换为端口

C# 将服务名称转换为端口,c#,windows,C#,Windows,我想将服务名称转换为相应的端口号。不幸的是,对于这段代码,我总是从getservbyname和WSANO_数据错误中得到IntPtr.Zero。我做错了什么 internal sealed class ServiceNameToPortConverter { public int Convert(string name) { // Vorbedingung if (string.IsNullOrEmpty(name))

我想将服务名称转换为相应的端口号。不幸的是,对于这段代码,我总是从getservbyname和WSANO_数据错误中得到IntPtr.Zero。我做错了什么


   internal sealed class ServiceNameToPortConverter
   {
      public int Convert(string name)
      {

         // Vorbedingung
         if (string.IsNullOrEmpty(name))
         {
            throw new ArgumentNullException("name");
         }

         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, "tcp");

            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;
      }

      private static Win32Exception CreateWSAException()
      {
         int error = NativeMethods.WSAGetLastError();
         return new Win32Exception(error);
      }

      internal static class NativeMethods
      {
         [DllImport("Ws2_32.dll", EntryPoint = "getservbyname",
                                  SetLastError = true,
                                  CharSet = CharSet.Auto,
                                  ExactSpelling = false,
                                  CallingConvention = CallingConvention.StdCall,
                                  ThrowOnUnmappableChar = true,
                                  BestFitMapping = false)]
         public static extern IntPtr GetServByName(string strName, string strProto);

         [DllImport("Ws2_32.dll", CharSet = CharSet.Auto, SetLastError = true, ThrowOnUnmappableChar = true, ExactSpelling = false)]
         public static extern Int32 WSAStartup(short wVersionRequested, ref WSAData wsaData);

         [DllImport("Ws2_32.dll", CharSet = CharSet.Auto, SetLastError = true, ThrowOnUnmappableChar = true, ExactSpelling = false)]
         public static extern Int32 WSACleanup();

         [DllImport("Ws2_32.dll", CharSet = CharSet.Auto, SetLastError = true, ThrowOnUnmappableChar = true, ExactSpelling = false)]
         public static extern Int32 WSAGetLastError();
      }

      [StructLayout(LayoutKind.Sequential)]
      internal struct Servent
      {
         [SuppressMessage("Microsoft.Maintainability", "CA1504:ReviewMisleadingFieldNames")]
         public string s_name;
         [SuppressMessage("Microsoft.Maintainability", "CA1504:ReviewMisleadingFieldNames")]
         public IntPtr s_aliases;
         [SuppressMessage("Microsoft.Maintainability", "CA1504:ReviewMisleadingFieldNames")]
         public short s_port;
         [SuppressMessage("Microsoft.Maintainability", "CA1504:ReviewMisleadingFieldNames")]
         public string s_proto;
      }

      [StructLayout(LayoutKind.Sequential)]
      public struct WSAData
      {
         public short version;
         public short highVersion;
         [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 257)]
         public string description;
         [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 129)]
         public string systemStatus;
         public short maxSockets;
         public short maxUdpDg;
         public IntPtr vendorInfo;
      }
   }
我的服务文件在C:WIndows\system32\drivers\etc中

echo 7/tcp
回声7/udp
丢弃9/tcp接收器空
丢弃9/udp接收器空
systat 11/tcp用户#活动用户
systat 11/udp用户#活动用户
日间13/tcp
日间13/udp
qotd 17/tcp报价#当日报价
qotd 17/udp报价#当日报价
chargen 19/tcp ttytst源#字符生成器
chargen 19/udp ttytst源#字符生成器
ftp数据20/tcp#ftp,数据
ftp 21/tcp#ftp。控制
ssh 22/tcp#ssh远程登录协议
telnet 23/tcp
smtp 25/tcp邮件#简单邮件传输协议
时间37/tcp服务器
时间37/udp服务器
rlp 39/udp资源#资源定位协议
名称服务器42/tcp名称#主机名服务器
名称服务器42/udp名称#主机名服务器
nicname 43/tcp whois
域53/tcp#域名服务器
域53/udp#域名服务器
bootps 67/udp dhcps#引导协议服务器
bootpc 68/udp dhcpc#引导协议客户端
tftp 69/udp#普通文件传输
gopher 70/tcp
finger 79/tcp
http 80/tcp www http#万维网
hosts2 ns 81/tcp#hosts2名称服务器
hosts2 ns 81/udp#hosts2名称服务器
kerberos 88/tcp krb5 kerberos sec#kerberos
kerberos 88/udp krb5 kerberos sec#kerberos
主机名101/tcp主机名#NIC主机名服务器
iso tsap 102/tcp#iso-tsap 0级
rtelnet 107/tcp#远程Telnet服务
pop2 109/tcp邮局#邮局协议-第2版
pop3 110/tcp#邮局协议-第3版
SUNRCP111/tcp rpcbind端口映射#SUN远程过程调用
SUNRCP111/udp rpcbind端口映射#SUN远程过程调用
身份验证113/tcp标识tap#标识协议
uucp路径117/tcp
sqlserv 118/tcp#SQL服务
nntp 119/tcp usenet#网络新闻传输协议
NTP123/udp#网络时间协议
epmap 135/tcp loc srv#DCE端点分辨率
epmap 135/udp loc srv#DCE端点分辨率
netbios ns 137/tcp nbname#netbios名称服务
netbios ns 137/udp nbname#netbios名称服务
netbios dgm 138/udp NB数据报#netbios数据报服务
netbios ssn 139/tcp nbsession#netbios会话服务
imap 143/tcp imap4#互联网消息访问协议
sqlnet150/tcp
sqlsrv156/tcp
pcmail srv 158/tcp#pcmail服务器
snmp 161/udp#snmp
snmptrap 162/udp snmp陷阱#snmp陷阱
打印srv 170/tcp#网络PostScript
bgp 179/tcp#边界网关协议
irc 194/tcp#互联网中继聊天协议
ipx 213/udp#ipx over IP rtsps 322/tcp rtsps 322/udp mftp 349/tcp mftp 349/udp ldap 389/tcp轻量级目录访问协议 https 443/tcp MCom#HTTP over TLS/SSL https 443/udp MCom#HTTP over TLS/SSL 微软ds 445/tcp 微软ds 445/udp kpasswd 464/tcp#Kerberos(v5) kpasswd 464/udp#Kerberos(v5) isakmp 500/udp ike#互联网密钥交换 crs 507/tcp#内容复制系统 crs 507/udp#内容复制系统 exec 512/tcp#远程进程执行 biff 512/udp通信卫星 登录513/tcp#远程登录 世界卫生组织513/udp世界卫生组织 cmd 514/tcp外壳 syslog 514/udp 打印机515/tcp后台处理程序 对话517/udp ntalk 518/udp efs 520/tcp#扩展文件名服务器 路由器520/udp路由 ulp 522/tcp
ulp 522/udp
定时525/udp时间服务器 节奏526/tcp新日期 irc serv 529/tcp irc服务529/udp courier 530/tcp rpc 会议531/tcp聊天 网络新闻532/tcp阅读新闻 用于紧急广播的netwall 533/udp# uucp 540/tcp uucpd klogin 543/tcp#Kerberos登录 克谢尔 echo 7/tcp echo 7/udp discard 9/tcp sink null discard 9/udp sink null systat 11/tcp users #Active users systat 11/udp users #Active users daytime 13/tcp daytime 13/udp qotd 17/tcp quote #Quote of the day qotd 17/udp quote #Quote of the day chargen 19/tcp ttytst source #Character generator chargen 19/udp ttytst source #Character generator ftp-data 20/tcp #FTP, data ftp 21/tcp #FTP. control ssh 22/tcp #SSH Remote Login Protocol telnet 23/tcp smtp 25/tcp mail #Simple Mail Transfer Protocol time 37/tcp timserver time 37/udp timserver rlp 39/udp resource #Resource Location Protocol nameserver 42/tcp name #Host Name Server nameserver 42/udp name #Host Name Server nicname 43/tcp whois domain 53/tcp #Domain Name Server domain 53/udp #Domain Name Server bootps 67/udp dhcps #Bootstrap Protocol Server bootpc 68/udp dhcpc #Bootstrap Protocol Client tftp 69/udp #Trivial File Transfer gopher 70/tcp finger 79/tcp http 80/tcp www www-http #World Wide Web hosts2-ns 81/tcp #HOSTS2 Name Server hosts2-ns 81/udp #HOSTS2 Name Server kerberos 88/tcp krb5 kerberos-sec #Kerberos kerberos 88/udp krb5 kerberos-sec #Kerberos hostname 101/tcp hostnames #NIC Host Name Server iso-tsap 102/tcp #ISO-TSAP Class 0 rtelnet 107/tcp #Remote Telnet Service pop2 109/tcp postoffice #Post Office Protocol - Version 2 pop3 110/tcp #Post Office Protocol - Version 3 sunrpc 111/tcp rpcbind portmap #SUN Remote Procedure Call sunrpc 111/udp rpcbind portmap #SUN Remote Procedure Call auth 113/tcp ident tap #Identification Protocol uucp-path 117/tcp sqlserv 118/tcp #SQL Services nntp 119/tcp usenet #Network News Transfer Protocol ntp 123/udp #Network Time Protocol epmap 135/tcp loc-srv #DCE endpoint resolution epmap 135/udp loc-srv #DCE endpoint resolution netbios-ns 137/tcp nbname #NETBIOS Name Service netbios-ns 137/udp nbname #NETBIOS Name Service netbios-dgm 138/udp nbdatagram #NETBIOS Datagram Service netbios-ssn 139/tcp nbsession #NETBIOS Session Service imap 143/tcp imap4 #Internet Message Access Protocol sql-net 150/tcp sqlsrv 156/tcp pcmail-srv 158/tcp #PCMail Server snmp 161/udp #SNMP snmptrap 162/udp snmp-trap #SNMP trap print-srv 170/tcp #Network PostScript bgp 179/tcp #Border Gateway Protocol irc 194/tcp #Internet Relay Chat Protocol
ipx 213/udp #IPX over IP rtsps 322/tcp rtsps 322/udp mftp 349/tcp mftp 349/udp ldap 389/tcp #Lightweight Directory Access Protocol https 443/tcp MCom #HTTP over TLS/SSL https 443/udp MCom #HTTP over TLS/SSL microsoft-ds 445/tcp microsoft-ds 445/udp kpasswd 464/tcp # Kerberos (v5) kpasswd 464/udp # Kerberos (v5) isakmp 500/udp ike #Internet Key Exchange crs 507/tcp #Content Replication System crs 507/udp #Content Replication System exec 512/tcp #Remote Process Execution biff 512/udp comsat login 513/tcp #Remote Login who 513/udp whod cmd 514/tcp shell syslog 514/udp printer 515/tcp spooler talk 517/udp ntalk 518/udp efs 520/tcp #Extended File Name Server router 520/udp route routed ulp 522/tcp
ulp 522/udp
timed 525/udp timeserver tempo 526/tcp newdate irc-serv 529/tcp irc-serv 529/udp courier 530/tcp rpc conference 531/tcp chat netnews 532/tcp readnews netwall 533/udp #For emergency broadcasts uucp 540/tcp uucpd klogin 543/tcp #Kerberos login kshell 544/tcp krcmd #Kerberos remote shell dhcpv6-client 546/tcp #DHCPv6 Client dhcpv6-client 546/udp #DHCPv6 Client dhcpv6-server 547/tcp #DHCPv6 Server dhcpv6-server 547/udp #DHCPv6 Server afpovertcp 548/tcp #AFP over TCP afpovertcp 548/udp #AFP over TCP new-rwho 550/udp new-who rtsp 554/tcp #Real Time Stream Control Protocol rtsp 554/udp #Real Time Stream Control Protocol remotefs 556/tcp rfs rfs_server rmonitor 560/udp rmonitord monitor 561/udp nntps 563/tcp snntp #NNTP over TLS/SSL nntps 563/udp snntp #NNTP over TLS/SSL whoami 565/tcp whoami 565/udp ms-shuttle 568/tcp #Microsoft shuttle ms-shuttle 568/udp #Microsoft shuttle ms-rome 569/tcp #Microsoft rome ms-rome 569/udp #Microsoft rome http-rpc-epmap 593/tcp #HTTP RPC Ep Map http-rpc-epmap 593/udp #HTTP RPC Ep Map hmmp-ind 612/tcp #HMMP Indication hmmp-ind 612/udp #HMMP Indication hmmp-op 613/tcp #HMMP Operation hmmp-op 613/udp #HMMP Operation ldaps 636/tcp sldap #LDAP over TLS/SSL doom 666/tcp #Doom Id Software doom 666/udp #Doom Id Software msexch-routing 691/tcp #MS Exchange Routing msexch-routing 691/udp #MS Exchange Routing kerberos-adm 749/tcp #Kerberos administration kerberos-adm 749/udp #Kerberos administration kerberos-iv 750/udp #Kerberos version IV mdbs_daemon 800/tcp mdbs_daemon 800/udp ftps-data 989/tcp #FTP data, over TLS/SSL ftps 990/tcp #FTP control, over TLS/SSL telnets 992/tcp #Telnet protocol over TLS/SSL imaps 993/tcp #IMAP4 protocol over TLS/SSL ircs 994/tcp #IRC protocol over TLS/SSL pop3s 995/tcp spop3 #pop3 protocol over TLS/SSL (was spop3) pop3s 995/udp spop3 #pop3 protocol over TLS/SSL (was spop3) kpop 1109/tcp #Kerberos POP nfsd-status 1110/tcp #Cluster status info nfsd-keepalive 1110/udp #Client status info nfa 1155/tcp #Network File Access nfa 1155/udp #Network File Access activesync 1034/tcp #ActiveSync Notifications phone 1167/udp #Conference calling opsmgr 1270/tcp #Microsoft Operations Manager opsmgr 1270/udp #Microsoft Operations Manager ms-sql-s 1433/tcp #Microsoft-SQL-Server ms-sql-s 1433/udp #Microsoft-SQL-Server ms-sql-m 1434/tcp #Microsoft-SQL-Monitor ms-sql-m 1434/udp #Microsoft-SQL-Monitor
ms-sna-server 1477/tcp ms-sna-server 1477/udp ms-sna-base 1478/tcp ms-sna-base 1478/udp wins 1512/tcp #Microsoft Windows Internet Name Service wins 1512/udp #Microsoft Windows Internet Name Service ingreslock 1524/tcp ingres stt 1607/tcp stt 1607/udp l2tp 1701/udp #Layer Two Tunneling Protocol pptconference 1711/tcp pptconference 1711/udp pptp 1723/tcp #Point-to-point tunnelling protocol msiccp 1731/tcp msiccp 1731/udp remote-winsock 1745/tcp remote-winsock 1745/udp ms-streaming 1755/tcp ms-streaming 1755/udp msmq 1801/tcp #Microsoft Message Queue msmq 1801/udp #Microsoft Message Queue radius 1812/udp #RADIUS authentication protocol radacct 1813/udp #RADIUS accounting protocol msnp 1863/tcp msnp 1863/udp ssdp 1900/tcp ssdp 1900/udp close-combat 1944/tcp close-combat 1944/udp nfsd 2049/udp nfs #NFS server knetd 2053/tcp #Kerberos de-multiplexor mzap 2106/tcp #Multicast-Scope Zone Announcement Protocol mzap 2106/udp #Multicast-Scope Zone Announcement Protocol qwave 2177/tcp #QWAVE qwave 2177/udp #QWAVE Experiment Port directplay 2234/tcp #DirectPlay directplay 2234/udp #DirectPlay ms-olap3 2382/tcp #Microsoft OLAP 3 ms-olap3 2382/udp #Microsoft OLAP 3 ms-olap4 2383/tcp #Microsoft OLAP 4 ms-olap4 2383/udp #Microsoft OLAP 4 ms-olap1 2393/tcp #Microsoft OLAP 1 ms-olap1 2393/udp #Microsoft OLAP 1 ms-olap2 2394/tcp #Microsoft OLAP 2 ms-olap2 2394/udp #Microsoft OLAP 2 ms-theater 2460/tcp ms-theater 2460/udp wlbs 2504/tcp #Microsoft Windows Load Balancing Server wlbs 2504/udp #Microsoft Windows Load Balancing Server ms-v-worlds 2525/tcp #Microsoft V-Worlds ms-v-worlds 2525/udp #Microsoft V-Worlds sms-rcinfo 2701/tcp #SMS RCINFO sms-rcinfo 2701/udp #SMS RCINFO sms-xfer 2702/tcp #SMS XFER sms-xfer 2702/udp #SMS XFER sms-chat 2703/tcp #SMS CHAT sms-chat 2703/udp #SMS CHAT sms-remctrl 2704/tcp #SMS REMCTRL sms-remctrl 2704/udp #SMS REMCTRL msolap-ptp2 2725/tcp #MSOLAP PTP2 msolap-ptp2 2725/udp #MSOLAP PTP2 icslap 2869/tcp icslap 2869/udp cifs 3020/tcp cifs 3020/udp xbox 3074/tcp #Microsoft Xbox game port xbox 3074/udp #Microsoft Xbox game port ms-dotnetster 3126/tcp #Microsoft .NET ster port ms-dotnetster 3126/udp #Microsoft .NET ster port ms-rule-engine 3132/tcp #Microsoft Business Rule Engine Update Service ms-rule-engine 3132/udp #Microsoft Business Rule Engine Update Service msft-gc 3268/tcp #Microsoft Global Catalog msft-gc 3268/udp #Microsoft Global Catalog msft-gc-ssl 3269/tcp #Microsoft Global Catalog with LDAP/SSL msft-gc-ssl 3269/udp #Microsoft Global Catalog with LDAP/SSL ms-cluster-net 3343/tcp #Microsoft Cluster Net ms-cluster-net 3343/udp #Microsoft Cluster Net ms-wbt-server 3389/tcp #MS WBT Server ms-wbt-server 3389/udp #MS WBT Server ms-la 3535/tcp #Microsoft Class Server ms-la 3535/udp #Microsoft Class Server pnrp-port 3540/tcp #PNRP User Port pnrp-port 3540/udp #PNRP User Port teredo 3544/tcp #Teredo Port teredo 3544/udp #Teredo Port p2pgroup 3587/tcp #Peer to Peer Grouping p2pgroup 3587/udp #Peer to Peer Grouping ws-discovery 3702/udp #WS-Discovery ws-discovery 3702/tcp #WS-Discovery dvcprov-port 3776/tcp #Device Provisioning Port dvcprov-port 3776/udp #Device Provisioning Port msfw-control 3847/tcp #Microsoft Firewall Control msdts1 3882/tcp #DTS Service Port sdp-portmapper 3935/tcp #SDP Port Mapper Protocol sdp-portmapper 3935/udp #SDP Port Mapper Protocol net-device 4350/tcp #Net Device net-device 4350/udp #Net Device ipsec-msft 4500/tcp #Microsoft IPsec NAT-T ipsec-msft 4500/udp #Microsoft IPsec NAT-T llmnr 5355/tcp #LLMNR llmnr 5355/udp #LLMNR wsd 5357/tcp #Web Services on devices wsd 5358/tcp #Web Services on devices rrac 5678/tcp #Remote Replication Agent Connection rrac 5678/udp #Remote Replication Agent Connection dccm 5679/tcp #Direct Cable Connect Manager dccm 5679/udp #Direct Cable Connect Manager ms-licensing 5720/tcp #Microsoft Licensing ms-licensing 5720/udp #Microsoft Licensing directplay8 6073/tcp #DirectPlay8 directplay8 6073/udp #DirectPlay8 man 9535/tcp #Remote Man Server rasadv 9753/tcp rasadv 9753/udp imip-channels 11320/tcp #IMIP Channels Port imip-channels 11320/udp #IMIP Channels Port directplaysrvr 47624/tcp #Direct Play Server directplaysrvr 47624/udp #Direct Play Server ods 3472/tcp #informix ods_test 3474/tcp #informix testsrv

info-aps 6400/tcp #