QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2668|回复: 0
打印 上一主题 下一主题

Asp.net编写的PING工具

[复制链接]
字体大小: 正常 放大
sskke        

2

主题

0

听众

19

积分

升级  14.74%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-4-14 15:37 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
<>    Asp.net编写的PING工具
9 n5 x+ ~% M5 }; }% L     8 z( H$ f+ K5 w" t
     
* Q* E6 m. S9 e  }) s' [( [    PING 是一个用来检测网络连接速度的工具,它会在本机和给出的远程主机名之间建立一个SOCKET 连接并向其发送一个ICMP协议格式的数据包,然后远程主机作出响应,发回一个数据包,通过计算发送到接收数据包的时间间隔,我们可以确定连接的速度。
2 w  T$ E6 ~& W& A! ~     9 g7 w5 X% \3 K$ L+ ^; j1 V
     5 q4 l9 |% ?) [
     
) T) E2 U% d4 ~& s1 l; R     此程序可以使用于 asp+asp.net 虚拟主机,时代互联(<a href="http://www.now.net.cn" target="_blank" >www.now.net.cn</A>)的虚拟主机可以支持 。虚拟主机的其他的配置问题,可以见:<a href="http://www.now.net.cn/host" target="_blank" >www.now.net.cn/host</A> ( V5 @; ^$ B/ T% O% K* R% Q2 f
     主机+域名+邮箱 的优惠套餐,可以见 : <a href="http://www.now.net.cn/special/host.net" target="_blank" >http://www.now.net.cn/special/host.net</A>
9 T: `8 H9 d; G$ z( a8 M' y     0 }  [7 r& I! y4 T8 J
     ' v9 J' ]% {) ?' M+ b& U7 C% ?% N7 j
     " n- L+ E5 T$ U: w% \; |; a
    使用方法 ping &lt;hostname&gt; [/r]
5 [  M+ J1 E1 v. Q0 z# T0 d7 h     
, q8 C; R' A; Y) g    &lt;hostname&gt; 主机名
) |8 `' ~& c) ]3 Y$ r     
$ [$ i# y5 G8 v2 E* Q9 T2 z+ U    [/r] 可选属性,决定是否连续的 ping 远程主机。 ' _2 f7 C  f. q  ^  }$ N
     
  h( h( f% z/ H       v3 Q. `( D+ w. b6 U$ L
    下面是代码: * d5 `, Q' O& p3 m) q4 P7 A
     
! t2 t( ^) @" c& A1 R    ///ping.cs . P/ c( e3 K1 ^$ F% b$ N8 E) t
     
* [5 N7 s& [  m- V2 c# P! W    namespace SaurabhPing . m! h8 g7 g+ u; V
     
) L2 _7 `) Z! d1 @' R+ y    { ! a' ?6 ^6 n+ r
     + I* F  f9 @$ I! p( P& V
    using System;
5 _6 p' w2 m4 n3 q4 m  H- n3 `     9 Y& n! z5 Z$ a& I; L
    using System.Net;
" T: z3 B% C2 N# l- c+ g3 J     ( F4 K# z# ?- A8 {: Y. [( c& m) u# L
    using System.Net.Sockets;
- e& x; R% F( J3 V     2 b( o9 E, R. s" |3 L+ X
    /// &lt;summary&gt; ; w+ ]4 A& Z% Y7 P! x" b1 f$ u( h) G
     , D9 J$ J, h$ X/ n. @. s' y
    /// 主要的类:ping
7 k$ A6 M8 z( Z7 L" ^" V$ T     3 b) L. |9 \+ |8 g2 H( v$ L' o# R
    /// &lt;/summary&gt;
0 }4 q& M* q; O: @     0 M- {% Y0 k4 F* o' H8 I2 m, U
    class Ping
6 h0 l2 J$ j1 \0 O9 O* _     
. n" I- |; T3 I0 s+ l    { 0 V7 W  R# Y: r/ T! D2 K
     
& R& R: r9 m. y% c    //声明几个常量
# U) M. {. ?8 y8 z$ Y' C     ( q' C- H# c; }/ a1 ]4 d' j4 L
    const int SOCKET_ERROR = -1;
/ L1 a& m0 W" A9 M5 S  O6 {( b- n     / z% s* W' I8 Y# L
    const int ICMP_ECHO = 8; 8 Q. B0 x# }6 u
     ) Q# A& s5 L. s! b1 r
    /// &lt;summary&gt;
& c* w* P' T5 R' w3 D" w& V# L     
% g, g0 `. I! D; _  @. J2 H    /// 这里取得Hostname参数 % x4 w+ V5 @6 X+ T# A
     % o* |, i- X) w+ y' E: \- H
    /// &lt;/summary&gt;
# k# n- b7 K; W7 e# m2 i- f% U     
) w& ^- T- W# O) C3 ^) o* y    public static void Main(string[] argv) 5 _! F2 l$ \! ~+ W; m7 z
     " Y) u: V2 d( [. v1 T9 m# |
    {
  o3 m3 d0 e. {* n+ Q     
* d2 q1 k; K, F& Q+ L3 O" X    if(argv.Length==0)
& Q2 Y$ U2 `. M2 U7 h     
; U" h: O8 C- G3 n9 C    {
/ k3 C: Q7 H& [, v) m+ M     " p* r! \3 J: z5 x$ a: q' m
    //If user did not enter any Parameter inform him 0 O1 ]  S: y5 {0 [" x
     
% t! J% ]1 K- S* w7 h: T    Console.WriteLine("Usageing &lt;hostname&gt; /r") ; ! F% E) [8 K- w( g
     , u" E2 m# h' I4 @5 g, k& g! Y
    Console.WriteLine("&lt;hostname&gt; The name of the Host who you want to ping"); ' l& ]" @" G2 D6 {2 Y8 u
     
! n2 {0 g5 Y8 p4 x% l) Y8 b& g    Console.WriteLine("/r Ping the host continuously") ;
4 }3 |! a+ z. r- p" j/ r& b     
$ \+ M. q& \9 Q+ S! ^1 ]" R2 P) r3 f" w    } . v. D5 `+ _" G9 |, E2 q3 i
     
0 d8 K9 q2 ?. s- F7 d$ ]; S& [    else if(argv.Length==1) ; S3 G( y5 A! ^+ g' V
     ; k. Y# T( x" m/ j# Z& H
    { $ b+ K; j+ }& J
     ( g" [% B* v: o4 z
    //Just the hostname provided by the user ( z& }/ B) q" [1 o. d, n
     5 g! Z/ P7 k& N: B! v7 Y
    //call the method "ingHost" and pass the HostName as a parameter ) V% _" S7 W7 |9 }
     
8 k# f: ~' O1 O4 a9 q1 h: Z5 Z) H    PingHost(argv[0]) ; ! F# X4 C( y0 ?" \  M
     
( v! G1 a2 j+ q7 J" N% R    } 7 g, U! A6 z0 a6 w, e" I8 E
     
6 r, Z/ `1 C2 G9 f/ \, J    else if(argv.Length==2) - D) ^: w( x) n- B& x
     
3 |7 e0 m( x3 Q4 b; J    {
; r* y( x7 f" F' S; H( q9 D5 e0 ~     9 B8 s7 M6 u% ]" g3 @. f4 Z* l, h2 j
    //the user provided the hostname and the switch
2 ^+ d) b+ S- z7 E  o     
% r& {% C+ E& m9 K+ a    if(argv[1]=="/r")
& ^2 H" f! Z3 B4 I     
0 \7 s- c6 {: m. W; X3 Z: m, }/ n    { 6 j2 |- S" d  T
     $ l/ {% e! R/ T8 i
    //loop the ping program
. x( l# A" e+ p/ v     5 v2 I: N) C0 v  C0 K
    while(true)
; `4 c5 R* r0 @8 K; B/ U% D     1 ]' R* {, h. m
    { $ d- }2 l: A$ a3 j# `7 r, S
     
% e, o* ?' \  Q# X3 |4 L    //call the method "ingHost" and pass the HostName as a parameter
: B: |" R3 t0 N6 r, s9 [7 M( p7 E- ?     
+ {9 o, h, d! ^- G1 C, S    PingHost(argv[0]) ;
7 `# {9 ], o5 |; ?5 J     # a  }0 e3 c8 c/ s+ e+ W$ L
    } 0 O6 {- [$ V: H% l5 e
     
& ?6 f6 L6 u6 a7 B3 O6 |    } " R: }8 Y. O# X$ N
     ( _" W% [5 @! A  L( _, M
    else
% f% i+ I: {8 H# F( j/ Z& Y2 u     $ o3 j' z/ _7 A- S" n; Y% o
    { 4 g5 ?; Y& Y& ?4 u1 g
     % }0 h3 c( O2 G4 \% u# I! ~$ |' X
    //if the user provided some other switch
+ }6 C. Z" K% J, X     
- Y' ~! @& D3 J  ?    PingHost(argv[0]) ;
1 H% t' m. P9 y0 G     ! i: f- C  g* u* t8 b# l
    }
+ V( c7 s' ^; |+ i1 a     * l  P% ~" L3 N6 n, U
    }
6 u- s& D2 @" m, F     
0 V. o2 d) Y4 c* A2 x1 e9 l1 f    else
2 P' v9 r7 x5 N     
2 e# D9 B5 @" ~! ]  U    {
$ ?" v9 D3 t8 ?' A     5 ~- z$ P% X/ o
    //Some error occurred % s. L8 Q: V! x, {2 z' m
     
" h; O* ~$ x* u& ]7 K" z. ~. w    Console.WriteLine("Error in Arguments") ; 5 K& X) K0 k% I3 }2 }: b
     8 ~6 N" g! C0 _- i$ ]# o$ j
    } & i0 D% {0 W# Z; v1 S' O) T4 ^
     7 s1 v! ]0 P' q& ?
    } : @6 ?8 ^  N9 @( P: U8 c$ Z* M, I
     ( Q, M; |1 M6 v3 c6 a" N1 z+ C8 T( C
     - p$ S: k$ G; s: j. E
    /// &lt;summary&gt;   G$ L0 I! `% H. d+ o# T) f7 `) {
     
9 S" b& G7 ?! D7 x    /// 主要的方法,用来取得IP,
  s& r3 o  M0 n, K+ \     1 Y: A5 j: S3 G2 y6 A! ?. Q
    /// 并计算响应时间
2 s) u8 q, {' }) l) B     
1 \4 t+ R/ X  N% b- ]' e7 Q: |    /// &lt;/summary&gt; ! t9 O: w. ~' L% c  l
     6 v( i& e4 s- `% `
    public static void PingHost(string host) - _5 L! N4 }% f6 H9 W' ?5 S: b
     
* l) A( Q0 C$ `/ g# V! J$ f    { 8 |4 ^" [/ K4 N, o" I
     
- e! o$ P5 {; a2 @( o* s3 T    //Declare the IPHostEntry
+ n  D" ]; n# t. w$ T) W  d     
" l  d* V! b. W! Q7 W8 K    IPHostEntry serverHE, fromHE;
# _; G# Z0 D+ E- u# `# r     
) V5 n$ y7 ~4 g+ \5 {7 x8 z3 N    int nBytes = 0;
- H7 U! M. q+ H7 X5 F     
+ p+ ]3 H/ _8 n* A    int dwStart = 0, dwStop = 0;
( f' c; j9 i6 K" }- v     
  z( E1 w7 p; G0 u- ^9 s, d' f    //Initilize a Socket of the Type ICMP
% U8 ?. ~1 H' h+ t6 J& v     
, U6 ?6 a2 N8 n! ?    Socket socket =
, o  K* L: ^0 o# i/ H: G2 f     
* v6 J5 e0 F) T    new Socket(AddressFamily.AfINet, SocketType.SockRaw, ProtocolType.ProtICMP);
4 m! H: s0 {  U* `       {2 q# _6 Y9 }( u+ ]/ E$ U7 S! F
     
- W) B7 V$ R$ B& j- P8 [$ ~    // Get the server endpoint 1 O6 M9 u5 B' H- \8 L
     ! x& `) e2 B7 x7 g
    try ' b. a. s3 w2 N( Q' V
     & O# W# ]* G" m% M" i
    {
" s8 m1 Z7 O! Z, U8 {     " C  [& T4 E7 a; o% M
    serverHE = DNS.GetHostByName(host);
7 L' b$ ~& o# f$ P' f( `8 |     
! [) B0 ~8 c; |1 u$ J    } 4 I! v9 F; n& s. S2 e5 N
     7 l3 y8 ~# g2 H5 K2 N3 x) ~- V
    catch(Exception) 8 |/ M9 ]: k; Q( Y
     * J/ Y( J/ P0 G, ?* y. H
    { 0 u8 U* @4 ~5 m8 h
     
7 y/ |' U) B; G/ m2 f( @$ o    Console.WriteLine("Host not found"); // fail
' J* \( H5 e# G' j     
- B/ J8 ^: a" P% |" x, M- D& _1 b/ D- ^    return ;
2 ?' A! n8 T6 F* Z2 J) Q) y     
" `1 L9 `1 Z9 S- F    }
2 P7 q5 U1 T& g. D! h, n$ p" y     
0 c; P" R5 J3 {0 J+ C! f6 Z0 O     
! S* Q8 j( x/ E* U3 r. b    // Convert the server IP_EndPoint to an EndPoint + Y5 @# v* p7 j
     2 S5 `' J0 }1 ~1 x: _! M, B7 w2 u
    IPEndPoint ipepServer = new IPEndPoint(serverHE.AddressList[0], 0);
* U( D4 r& @  w* G* _! Z. }* f. n6 H; k     % G( a% e2 ?+ ~4 Z% e! s
    EndPoint epServer = (ipepServer); 3 C8 J! q* V6 k2 f: c5 V
     
) C, Y$ N8 a, L' G     
6 t& {; p9 E( W2 K6 E; B    // Set the receiving endpoint to the client machine
% j+ o- i$ Q4 K' h2 [0 J# z# {     
% L- }* R3 D6 ?7 o- ?! ]. S5 ?    fromHE = DNS.GetHostByName(DNS.GetHostName());
9 @+ f" C: P/ D     
5 [* s* K. L. s9 i4 o    IPEndPoint ipEndPointFrom = new IPEndPoint(fromHE.AddressList[0], 0);
& ~% B9 S; z& E) ?8 S     
/ E& C! K3 F8 {- e) c0 V0 w& \2 l    EndPoint EndPointFrom = (ipEndPointFrom); 7 Y- Y- u  F1 b7 |
     
) ]# `( ?/ n% e/ o     
3 z. X% V6 A" |0 }: g7 W    int PacketSize = 0;
  w/ h2 ]1 a2 F+ {, f     0 w- w: `3 z  R2 L# l! i# l
    IcmpPacket packet = new IcmpPacket();
) k9 X: {5 t) _) e, X& E9 h     1 o) P$ u2 R4 }# `( _8 r
    // Construct the packet to send
1 |3 `' A8 t  @     
/ x/ B, {7 b' Y! @' W    packet.Type = ICMP_ECHO; //8
2 Y4 z& }! p" z4 k     
( r7 {' K; U( O+ F* `+ H( e6 W' ?5 {5 B    packet.SubCode = 0; % ?2 W! g! s  R" P* A5 s
     ) m" x) e) w' D2 r5 U9 N, {% a6 F
    packet.CheckSum = UInt16.Parse("0"); # m& D% ^! L5 c
     
% o% i1 m3 b# K; I    packet.Identifier = UInt16.Parse("45"); . h% z& D7 N/ g" U- f
     9 e7 G9 |( s/ f8 S* H1 w
    packet.SequenceNumber = UInt16.Parse("0"); . c" x0 G: \5 n  Z, J: Z
     
6 s+ i( K7 h9 [7 V) Y* _8 X, D    int PingData = 32; // sizeof(IcmpPacket) - 8;
, O7 z+ h8 b" d8 \/ I( a0 }5 M     - ^) w$ i: R1 N0 b7 D7 e& H
    packet.Data = new Byte[PingData]; . O; n6 B# p2 W- N! w, ^
     3 h3 \3 q" Z% J% t
    //Initilize the Packet.Data 9 x4 [+ c& e0 @2 |9 N$ W$ e; o
     
, B% S: D/ D: A2 V& `9 `    for (int i = 0; i &lt; PingData; i++)
+ t# H1 I2 @- z     " V4 O; Q: z7 u3 [3 ~$ v
    {
+ H' y9 s" `9 x$ j+ ?     + l/ {/ y( u* n- B: G% _3 I5 x
    packet.Data = (byte)'#'; 1 h! d4 ~0 O  t0 r4 w9 U
     
1 H+ y# `3 p( t5 ^2 U    } , A1 o8 x, M0 a+ Q, x. w* E
     
* x( K; e" \' d, U$ t. R     
+ X, P; z; M* a$ B8 p1 m    //Variable to hold the total Packet size
7 C7 [, U% F" M  m3 b  y# U$ U6 E     ; [8 m0 m/ [% `9 u! X2 x
    PacketSize = PingData + 8; % k9 R' {1 y( Z2 V: t7 B; |
     * \* p9 ?+ T  B& u+ N1 G; f2 a
    Byte [] icmp_pkt_buffer = new Byte[ PacketSize ]; * H5 g6 d8 H/ s* O$ s
     1 @  s2 D% Y; D! W% Z: z  I
    Int32 Index = 0; % o. @7 B! Z9 Y, I  ~6 O( m
     / F' Q5 U; `; V% v$ R5 m' @0 x, ^* l
    //Call a Method Serialize which counts
& u9 c; x' ^/ u     
* t* G! C" S4 c9 x5 f    //The total number of Bytes in the Packet ' r% n9 @" T; z# x! h, k' V
     
! D5 O8 E/ B. q- V+ _8 j+ p4 d    Index = Serialize( 7 a1 }0 ?# x; i4 f2 o* Z% G6 G
     
/ T$ V4 P) g8 y) x% E    packet,
# q2 O- Q; S8 r' {- t     
( y7 E7 O% z) \. A    icmp_pkt_buffer, + S1 ?2 L; S# P5 A: Z
     : e) a2 W7 ^+ k; S  X7 c: A8 n
    PacketSize, # a0 r$ [7 o) \+ }' g% Z* H
     
9 k5 [! M8 W) r+ S; U    PingData ); ( U( o- ?, g% k' r
     
7 V: {1 E3 S' G/ V5 b    //Error in Packet Size . p/ @9 ^- ], e9 P, u1 ]
     
/ A* v2 l6 h1 ]0 l+ @: D% L    if( Index == -1 ) ! x6 T; C5 G/ v) l  J+ i
       c$ F' e  Y, Z$ W6 T
    {
# w$ F4 h) z" C( s3 ], Z     
* f  ^- B/ M- z/ R% k, C4 W$ K    Console.WriteLine("Error in Making Packet");
* ^! |. D" u/ h$ e     $ ^) r* }; H0 h" S6 [. z0 g# |
    return ;
6 a9 B) H6 b& ^7 v9 x/ p* u' p     ) v# I7 t( Q( x
    }
; a8 D6 @5 E) I- g1 r$ }     
9 L/ `' c+ s7 v* r, T     
' [- b( }2 R3 c) h/ n4 u2 u    // now get this critter into a UInt16 array
" U0 c- V' O- ?$ }     
8 h7 `. a& d" g" a     ; F& J, ^% h6 U- a& I
    //Get the Half size of the Packet
' s$ [0 C9 l7 W, p- a9 F; K     
& o6 r( T7 g  B  V4 h  S' s' t7 T' T    Double double_length = Convert.ToDouble(Index);
8 y6 r) i  j+ J     - i+ A9 ]. l2 r4 D8 @+ u" n
    Double dtemp = Math.Ceil( double_length / 2);   n1 ^2 E9 B; M+ p3 N+ G- n
     # x& X* E. a4 p& Z  A, W! c
    int cksum_buffer_length = Convert.ToInt32(dtemp);
  t) P2 y" z( }1 T     
! j( {3 E9 s3 H1 ?! |& t    //Create a Byte Array
9 a4 Z* E5 S  E# N4 h2 F6 n5 |     ; s! x, i: K1 j# B/ u( N1 ^4 p
    UInt16 [] cksum_buffer = new UInt16[cksum_buffer_length];
0 a. l# \9 G0 @* }     
- L- G' E$ Y& C    //Code to initialize the Uint16 array
9 O2 R& w+ u, E) \     0 F7 H, o- {: Q+ b, b' o/ [
    int icmp_header_buffer_index = 0; , [5 ?' O& s/ k  L
     
7 G  I% y6 j5 D5 n, S    for( int i = 0; i &lt; cksum_buffer_length; i++ ) { ) c3 C( J' o& p6 ^( u9 M* ?' E/ ?
     9 V1 i+ Z- R) ~# Z8 P& g4 b
    cksum_buffer =
  _# z0 l+ R8 \, `! F! E( O) N     
# g) a. V6 R# I; L    BitConverter.ToUInt16(icmp_pkt_buffer,icmp_header_buffer_index);
, c( k8 z  o- W1 b! C# k/ ?     
7 m1 j, H, X- R. g, K    icmp_header . Q7 v3 B" \3 S8 W- x
     ) }7 i& B: ~/ e& n# q
    以上代码可以直接在时代互联的ASP+ASP.NET 虚拟主机上直接运行,欢迎试用 !到<a href="http://www.now.net.cn/host" target="_blank" >www.now.net.cn/host</A> 订购后可试用 !
! E5 G0 e0 u$ b% R. d. N& N) d     
& `: N; e  S' G- K8 `3 z+ j     关于ASP+ASP.NET高速虚拟主机,也有同时支持JSP(JAVA) 和PHP的综合虚拟主机。也可以试用,其他问题可以有免费网络电话咨询,
+ B! h9 Y9 j. E     欢迎随时联系 <a href="http://www.now.net.cn/customer/moreline.net" target="_blank" >http://www.now.net.cn/customer/moreline.net</A> </P>" y. F* D; k4 R# ]/ D
<>时代互联(<a href="http://www.now.net.cn" target="_blank" >www.now.net.cn</A>) 的虚拟主机,免费配有 CDN 镜象网络加速 ,送域名 邮箱,流量访问系统,留言版,计数器! % h% f& D2 B" V3 I, G0 J
     / F& ?) {7 n! G( t% P4 p  m
    虚拟主机在线订购试用,请到: <a href="http://www.now.net.cn/host" target="_blank" >http://www.now.net.cn/host</A>
* k! {* X% h2 X! p    域名+空间的优惠套餐可见 : <a href="http://www.now.net.cn/special/" target="_blank" >http://www.now.net.cn/special/</A>
  }* O: ]8 t9 z, p% U     . [- B! D$ X' F6 m7 ~
    如有问题要咨询,时代互联提供免费咨询电话,点击这里: <a href="http://www.now.net.cn/customer/moreline.net" target="_blank" >http://www.now.net.cn/customer/moreline.net</A> & k$ E6 l! p( j7 K2 d
    QQ 联系 :405881840 108786612 </P>
3 n! |5 i1 [' }1 l7 n: H8 F<>----------------------------------------------------------------------------------------------------------------------------</P>! j2 G2 H7 t* p3 }/ n
<>) m$ O4 [9 d  e6 s' k8 K) S
       主机租用,折上有礼,租用9折优惠加送价值3600的CDN 主机加速器 !详情见: <a href="http://www.todayidc.com" target="_blank" >http://www.todayidc.com</A> % _- m; C9 l  s
     
& D9 ~  O7 w! u8 w7 l    企业邮局—— 立企业的统一形象,自由增加帐号 划分大小,不限制附件大小,繁、简、英3种界面智能显示。强大Anti-SPAM反垃圾邮件使用专业杀 引擎Anti-VIRUS,在线实时自动杀  ,价 超低! <a href="http://www.now.net.cn/email/" target="_blank" >http://www.now.net.cn/email/</A> / y& Q, p, o3 i/ A; L: B8 N
     , w2 g: t6 O' m+ n) R, t1 f) r
    智能建站——3分钟就建立了数据库功能的网络交易平台,只要填写公司的资料或图片,就可建成网站。免费试用到 : <a href="http://www.now.net.cn/auto/" target="_blank" >http://www.now.net.cn/auto/</A> - r; V; n7 t6 T& j2 A8 g
     % ~- ^, I2 V' a8 {" u' G/ q
    繁简通—— 300 元就给你一个完全同 的繁体网站,方便开拓 外市场!免费试用到: <a href="http://www.now.net.cn/fjt/" target="_blank" >http://www.now.net.cn/fjt/</A> 5 C! \/ F8 R7 k8 X) ]6 N
     , a( P3 u" n, o% o. y/ d) J
    动态域名——380元 就可以在公司里建立一个可以固定访问的服务器,可以应用于保密的资料服务器,视频服务器,网站服务器,邮件服务器,免费试用到: <a href="http://www.now.net.cn/cyberip/" target="_blank" >http://www.now.net.cn/cyberip/</A>  </P>
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-10-23 09:14 , Processed in 0.335541 second(s), 58 queries .

回顶部