QQ登录

只需要一步,快速开始

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

Asp.net编写的PING工具

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

2

主题

0

听众

19

积分

升级  14.74%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-4-14 15:37 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
<>    Asp.net编写的PING工具
3 v* @" `0 i5 ]# ]0 r/ F     
1 n2 q. Y+ J$ X. P3 T     
& S0 v1 m7 [+ T' d4 y) a    PING 是一个用来检测网络连接速度的工具,它会在本机和给出的远程主机名之间建立一个SOCKET 连接并向其发送一个ICMP协议格式的数据包,然后远程主机作出响应,发回一个数据包,通过计算发送到接收数据包的时间间隔,我们可以确定连接的速度。
! c% F: R& v) w( f5 b     6 \+ R, ]- ~! [4 q) {
     + l+ m8 V% ~( y9 P( ]6 O- J
     / v- ~3 F6 V. n- ?) G
     此程序可以使用于 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>
/ d, _, m, L! F     主机+域名+邮箱 的优惠套餐,可以见 : <a href="http://www.now.net.cn/special/host.net" target="_blank" >http://www.now.net.cn/special/host.net</A># b1 ^! R  X0 k* m$ f
     
( k  P1 X3 X2 M% B( W     
; f7 g, m% u0 Q( r     ) |: n& N8 Y; Y1 v
    使用方法 ping &lt;hostname&gt; [/r]
8 t2 c+ Y/ S9 b+ K- s, P, [* Z; ?$ B     $ ^9 V& _1 H" W% W, Z' r
    &lt;hostname&gt; 主机名
4 K! _9 v+ L) E     
) ]" E- U0 y- x    [/r] 可选属性,决定是否连续的 ping 远程主机。 & [  }% {: r( o# U6 `) D
     " W7 H: ^# D( M3 k) _
     
- Z" S" h4 r7 p( W. ^- G: `    下面是代码:
6 n7 f1 Y4 j- K) s- u     
6 O' M0 k1 k; R4 d& p    ///ping.cs 6 f! d. N0 r  O$ X( u! L
     ' u7 w6 N" l5 n3 |, x# }5 [3 H
    namespace SaurabhPing $ U" W- ?6 w; U
     ! {% e3 T- g/ d# C# Q# Q7 a" a! h7 S
    {
7 Z! D1 r* M# _" i6 \! W( {; m0 c     
! L5 }0 O: o/ M% [    using System; ; d$ O  l( x' f' Z( g; Y- Y
     2 J6 d- Y) o, ]* n
    using System.Net;
% |: O- v9 z# R/ X: [- |, Y     
" @' p  Q! k8 y4 v' E4 k    using System.Net.Sockets;
  [! j  D; n2 B     1 m, b& ~/ `+ p- |. {
    /// &lt;summary&gt; 8 C4 E# c0 @( F1 V0 H' |( M* G
     
4 q; S7 P8 O9 {8 @: Y2 j    /// 主要的类:ping ( Y; |: }" ?% h) g, E
     ( u; X* Z  H' P, T! e# H
    /// &lt;/summary&gt; : @* H$ J6 M" F3 [! F* p! V0 y
     
0 q+ [/ K1 n7 q( N' H& e    class Ping : I8 b7 i8 G* n) h
     ; W7 J- G" g) g! i# J$ z7 G
    {
) ?8 p" L/ s+ V, H3 m     0 t( W/ r+ t1 Q. ?
    //声明几个常量 $ O5 f  q- s9 _
     
* X5 F& a# w$ H1 C" Z7 w% b; \& t2 i    const int SOCKET_ERROR = -1;
$ L6 M8 q+ k& g     
, V* ]& \5 ?+ f) v    const int ICMP_ECHO = 8; 6 h' c2 D: L. r. O& M
     
$ l8 J* }" r& Y- S" A" c' ~    /// &lt;summary&gt;
2 L; e8 n$ Q( F4 |, o% H( D: d/ v     
& h& T  {/ C, M1 w2 v, X    /// 这里取得Hostname参数 ( a5 E" a. J9 t/ D( H$ X
     
2 s2 n2 r9 c1 u. O. I! z  q: @    /// &lt;/summary&gt;
2 Q8 q8 T- i3 m+ L4 V8 M  ~     * X! F  Y! {1 u. `5 r
    public static void Main(string[] argv) 3 ^4 P- G( l0 d5 a
     ; T& D* C% b' O3 o
    { & I$ q4 o) L* f. S4 \3 d/ ^" i/ ~
     
/ z" ]* N( S9 p. z$ L/ h1 \    if(argv.Length==0)
1 d6 j! j' r5 C: _' D     
( b& ~4 V/ p& f# F7 Y3 T    { ( t" V2 [, {& [" e/ r
     - h( A4 {6 _$ Z* I) b
    //If user did not enter any Parameter inform him & G* Y) S1 l' B9 }6 \* T& M0 d, H
     3 ^5 z; v% Y' a* u- d
    Console.WriteLine("Usageing &lt;hostname&gt; /r") ;
" ]% o& ]6 S" o3 g* V9 V3 C     . ^# ~2 Y4 R# d  z( [
    Console.WriteLine("&lt;hostname&gt; The name of the Host who you want to ping");
# ^: [" ~" u+ y3 R& b     ! M; f1 k" p* x/ x0 K# \
    Console.WriteLine("/r Ping the host continuously") ; " m) G. @2 C) a+ `
     / |$ R& F# W8 u- I- n+ [
    }
4 @3 h3 C- e: t% r     ; B3 _, b$ y% m. y$ t( J; I' e
    else if(argv.Length==1) ( L# w1 ]8 N9 `% g- u/ r9 t
     
; L* m6 G' y" [, e  v6 S; ?: M    {
* I$ Y& S' @6 {  u) `/ h. V     ( s' H8 v! V. z1 g) y# L  b0 p9 N, Z1 }
    //Just the hostname provided by the user - [: j& j1 \. n2 c
     
  Q. Z( w6 ]+ @5 ^: |7 N    //call the method "ingHost" and pass the HostName as a parameter
- ~4 Q& o6 _) U4 \     " u5 N( x% e( y# x9 ^3 x5 A
    PingHost(argv[0]) ; - }# Y5 O, O' H1 Y3 D) J
     
; L8 u( ~% x: _; u- B4 D3 C4 a( g    }
) @9 V+ n5 T2 p     / ]- I& Q* ~  U5 t' T8 H. }+ W& q
    else if(argv.Length==2)
" B6 W, U3 d! G! B     
1 M4 w) c* x5 l! J$ R    {
5 ~' Y5 u5 D& t* ]. \     1 u5 K  Z# f( R1 v0 ~$ T
    //the user provided the hostname and the switch
  d# |! J3 ~/ N     ( e; P9 n+ p9 v! ]2 a
    if(argv[1]=="/r")
( C0 _! H; J3 E/ ]) y7 M     3 a; i) l* ^9 f! @* ?, H
    { : R! P' p$ ^9 [- t& z. p3 b
     ' m, h+ `1 u, C$ p: `) l9 e
    //loop the ping program / V/ d( q* G& e# L% S
     
# L5 E2 Z& ~) p    while(true) 2 [  [/ S+ Y! u8 i$ ~
     
' z* w9 E( C, ?- g7 L1 Z8 L    {
4 m$ L( W: K' d4 W' H     ) T. ]$ M% w7 }) j1 s
    //call the method "ingHost" and pass the HostName as a parameter * t) ^; ]5 a% F3 d/ K! l6 H
     ; V9 j% E2 ^: I; T  f, P7 H3 Y
    PingHost(argv[0]) ; $ v! T7 m- O; Z( n9 i' W, o+ o1 f
     $ I: d; h! a0 h! w
    }
' q$ F9 ]: Y) b8 z5 m2 ?! q0 z: _     
  s; A+ @$ I  G/ b3 A    } , ~1 m6 Y  z  F! E1 L2 g) C
     3 i) }2 O1 f$ z2 R/ o. f
    else
( R1 Y" n4 Z' [1 {     , U1 e, |% A6 `$ |
    { ( W( t' B- k1 u% z& i8 ^/ [
     ( S3 N$ b0 c  ~: _$ u
    //if the user provided some other switch
, M+ G9 L4 q. p* {4 P$ U0 j2 H9 s     % x) B- z2 H) h; H) ^: m# {3 n
    PingHost(argv[0]) ; ) S! A4 V7 l2 w3 R" |) d
     % t$ B- K; D1 p5 G. s) h3 Q
    }
6 h9 A; D2 h/ B, ^       i5 d1 t) t9 V& U
    }
9 p6 _0 _. H% s0 z! C1 g- j     5 q2 q4 ^6 S3 u
    else 6 z, A1 e7 C: S+ W4 @
     
: v$ ~$ b5 H: |2 J2 d# u    {
$ g; W& x& C0 f$ l7 J6 G     : Z- S2 P; [  W0 @/ ^. b6 U
    //Some error occurred
8 H, j9 v' ?- [; c; a     
+ I3 o- \3 m" s4 \3 w    Console.WriteLine("Error in Arguments") ;
: G1 K- M, Z$ H; S& @     
/ o# K2 Z, A* U    }
. s/ ~4 O# a7 A, R! v" @     4 S. m* f$ Q, H1 X: w
    }
( S" G; Y8 d8 k     0 h+ x. u$ ]2 \5 H  x2 X8 y
     
. ~* d- Z; ^1 `- R3 W" j- o    /// &lt;summary&gt;
* H: A' t. |+ ^! h. z0 ^+ [+ G     
$ m4 i- U" Q/ c/ Y* b# |) B    /// 主要的方法,用来取得IP,   E: T2 d1 b2 B) A+ A
     6 x! O5 d- ]& [2 a! F9 v0 n
    /// 并计算响应时间
& l6 J" y7 W( h+ I* B) z/ P     
# C7 m5 Q2 Q6 L* @$ p! f, D    /// &lt;/summary&gt; % X+ d. A" k* s) M
     2 t# }/ C: I* |% W! y: v
    public static void PingHost(string host) + [. t: g# @% `1 m& p
     # s8 M  v2 i; e! z7 h$ S
    {
4 E  E7 c, }% l6 a0 R     ( D1 K4 Y; N9 w* R
    //Declare the IPHostEntry 8 y0 O: p+ y% m1 E5 l) \. O  e
     
+ E5 z$ \. d! b8 T0 m    IPHostEntry serverHE, fromHE;
4 ?, e$ v$ d  F7 g: c8 I4 K) A1 P     " c% Y  b; N% ]+ A# B
    int nBytes = 0; 6 b; \0 r* M9 t# }6 B
     
9 Q; L. I7 J9 e/ D6 A. z    int dwStart = 0, dwStop = 0; 1 ^. I: G3 z) n" m( f3 v/ z
     
, @; O5 s( I* @1 K* t5 q    //Initilize a Socket of the Type ICMP ( H4 M0 k) G) m6 h2 u% ~$ W) q
     - y1 H6 I' k1 f; {7 K) N/ ~! ?# K
    Socket socket =
* s- f4 s# t& |9 j" B4 w     # h# j" J2 l! K* t( M2 l2 v% E
    new Socket(AddressFamily.AfINet, SocketType.SockRaw, ProtocolType.ProtICMP);
& k0 R7 a3 ]1 W, E# z# P) v0 [7 t     
8 _5 Q4 Q. _- ~     
$ B2 I! y9 f7 o  v7 s# I    // Get the server endpoint
0 K- Q$ X9 ^' j! E- c2 f  L0 c7 K     7 C: o3 \6 ?* e# r
    try
$ }, D# l/ n5 a3 r     
, @+ O: e6 f; t' V" i6 u6 V8 H    {
' x7 q/ c$ a- Z% I4 c- r     
# T# |4 B* L* P9 M6 I2 V    serverHE = DNS.GetHostByName(host); & Q1 Z* _+ G/ u% N7 C
     ( _- a" {; e) m% E$ l) x; R& D
    } 6 `2 F$ j8 a& O/ x  H
     ; X" i" h! {; @5 P; ?
    catch(Exception) ' b. @* r2 A/ w4 E0 ~
     
6 i4 f; _7 Y' K) @1 X( {' q( w; [    {
7 ]' q, T. C$ B     
! o% \8 `( D  }2 x    Console.WriteLine("Host not found"); // fail ( P+ w7 G* a$ E3 p3 P
     
4 [  z$ u! N4 f  W6 o    return ; - r' @) t# u9 }4 x# v
     
1 |( Q0 c4 u* G5 F' F; _3 i& ]3 _2 _    }
% E9 l- @' U$ t     
6 r9 f4 A% E7 x     4 v/ P, o+ q1 Y" u! f
    // Convert the server IP_EndPoint to an EndPoint
, y. G/ q: W: g/ J3 k2 n     
% u2 o1 P" R. w1 _    IPEndPoint ipepServer = new IPEndPoint(serverHE.AddressList[0], 0);
" `! \# a( ~: I: c* A2 b8 s     
3 M* o* ]' `& s, M4 R" V/ \  t    EndPoint epServer = (ipepServer); 3 v- r( W7 }! I1 g- I6 l- W
     
) ^% }- |4 G! E  T     4 F0 J0 {. ^* p$ s1 o+ H+ a; L
    // Set the receiving endpoint to the client machine : Z- C! i$ L6 l/ K5 O  f
     2 V& g! g  k! b6 l# V; D
    fromHE = DNS.GetHostByName(DNS.GetHostName()); & M, n3 J- E% o6 L) Y7 K5 Q
     : n' w0 W1 f8 ^. ^- V9 g
    IPEndPoint ipEndPointFrom = new IPEndPoint(fromHE.AddressList[0], 0); 3 `' z' C+ M/ @- @: g
     
; Z# j& N* }( i" U5 m    EndPoint EndPointFrom = (ipEndPointFrom);
% \4 B' |" a. z" C     
* s2 U4 D5 h$ ]) {     1 q4 S% C( U' R& m+ m
    int PacketSize = 0;
0 ?3 _& e- D0 Q( x. @     2 n' L3 s. R- u. Z- o5 A
    IcmpPacket packet = new IcmpPacket();
4 o( u. M" U) y# H     - m6 }6 L4 \7 H0 b- W8 s7 m
    // Construct the packet to send
' B2 r# K+ u4 `& n& T* e# n     % i7 R* w1 v& e5 z$ Z' J7 D
    packet.Type = ICMP_ECHO; //8 . y6 l% x8 C% l4 C) C( \
     
. U8 z) S5 {/ v# L  Y# j) J    packet.SubCode = 0; : q+ O+ O* }0 [8 L8 }
     ! }+ g1 C/ X  S5 {' ^! v$ J- b
    packet.CheckSum = UInt16.Parse("0"); 9 k& X4 L0 W$ f* y1 I
     
: _) ?, S+ _& w3 E  `; C    packet.Identifier = UInt16.Parse("45"); ( I- f! A( V( r: h
     9 C6 W# p) f7 C: R
    packet.SequenceNumber = UInt16.Parse("0"); " J$ m5 U& @& @* Q' O) ]3 F3 Z7 f
     
- Y  |& ?5 m$ v5 e    int PingData = 32; // sizeof(IcmpPacket) - 8; : O9 Y) O9 I8 ~  u
     ) @3 [: t& \7 N2 N. Y
    packet.Data = new Byte[PingData];   h- a4 w; D; ~$ r9 u' H
     
# a: m4 f; \! z& {' X# o. f& A+ }    //Initilize the Packet.Data
; l: b  D' w- V$ u4 m9 u     
& c9 t. O! g* y6 B+ S    for (int i = 0; i &lt; PingData; i++)
' u/ f& j5 d$ g. @3 Q     
! o6 z) r) J. f    { 6 e. c, P, x/ a" \6 J" p
     
* {& {  }/ Z  D/ U" o8 T    packet.Data = (byte)'#'; 9 t! u* I# Q$ s+ j% F
     " k9 C  S. D7 Z$ e( h
    }
: ?' J$ i' X# P% |/ ]5 [2 y+ |- g     ' Z& y7 b9 U$ i8 x
     
) a- |* g. z  Q. G8 V  S& ]+ N. J    //Variable to hold the total Packet size + }* F$ T( @- c2 k. t$ @
     
. F/ m) K7 U; `5 P, e6 N; f    PacketSize = PingData + 8;
; E3 s' S1 M/ O3 I! Z7 I% _" H     
* i8 A4 v7 @% b* H    Byte [] icmp_pkt_buffer = new Byte[ PacketSize ]; ' I3 _1 y6 z7 A& G. Q! t: Q
     8 P1 \! @& K+ ?" j2 `% e
    Int32 Index = 0;
9 Z9 R3 ?5 |- T. L6 @: ~     
: b2 _* D& g; N/ e8 I    //Call a Method Serialize which counts
' H  o" A) Z5 r5 c; w0 W0 F2 A     
/ B/ o, o; Y/ z    //The total number of Bytes in the Packet $ x0 R' h# w2 o+ s* ^: ]
     
  {6 s4 x7 S2 }3 {5 c: D' j, A    Index = Serialize(
! ~5 @9 c6 N( J1 T( F1 U$ ~     ! @5 R) X% O- @
    packet, 5 c- z6 X$ s, h7 s# [
     ) N; Y- {& `5 J# y6 H2 [
    icmp_pkt_buffer,
" N2 K0 R, H8 j7 x! I9 l, Z/ U/ S     " F- Q: C' b0 F, V. w# e
    PacketSize,
6 p  r: i' {8 F* H     
4 k- v# p' I/ S    PingData );
" i$ @7 k) b& o9 {; N3 S* e     
% L' [! J, N6 r3 N* L( C; z5 K    //Error in Packet Size & n& v! F7 l5 M7 T
     
# h3 k" J/ B. @8 c    if( Index == -1 )
4 t5 K, f9 U- U/ W8 Q; L     
  }+ V: ^3 S# ?# C5 ]. y    {
& g6 l) Y; q  ?4 R1 U6 ^     
( h/ d6 o0 L1 B    Console.WriteLine("Error in Making Packet"); - O0 i& K( |- E- g4 {0 i
     
2 B* ?# d: S  f/ y: E8 z* J    return ;
, c* Q1 V( r  H+ l: {     
( M8 i/ {! V! F" X# b5 U2 q7 w    }
* x3 i2 d/ c& W7 d     * k/ q" P) E/ z+ I) B: |
     ) Y0 u' p6 ]7 b, J
    // now get this critter into a UInt16 array
( h6 F9 `4 N+ [9 E" \- H     
- _  c' H% g4 h  h# U" I& m5 D$ D     1 `# {* i& T) o" p0 k. D
    //Get the Half size of the Packet
( d9 j# P+ g5 z/ H% r: }     ' v) A! O" T& \+ m% h) q
    Double double_length = Convert.ToDouble(Index); , \$ n( B8 L7 I7 ~
     3 w) w% A& X# n% Z$ `- Q6 K
    Double dtemp = Math.Ceil( double_length / 2);
- |( K8 D- k, b5 d9 y2 d     
' J% h  W% d- W) x' O( S# k    int cksum_buffer_length = Convert.ToInt32(dtemp); ) d0 I3 d- V+ H, F
     
4 U- g! P) Q+ i8 P/ d    //Create a Byte Array
% L, G. O& K& X: r% @; N) e     
7 Z5 X' o) h5 g" @3 |- W# a/ i    UInt16 [] cksum_buffer = new UInt16[cksum_buffer_length];
  m. B1 ?* H5 U7 C: ~     
5 y* X; W/ g) j5 t9 ^  q: ]" N& e4 y    //Code to initialize the Uint16 array 3 r3 Z' _: M! Q) P
     * i+ J% k" Z3 G
    int icmp_header_buffer_index = 0; 3 _$ x8 S5 p$ N" G
     
, j! t/ S: U: O4 i    for( int i = 0; i &lt; cksum_buffer_length; i++ ) { ) F; T4 ]+ ]' h; \( ?
       _- W$ y2 B) x* Y( O3 n
    cksum_buffer = - f1 V3 Z8 E6 [* @7 n8 u
     3 q# D7 u! L6 d* t$ l3 k: k
    BitConverter.ToUInt16(icmp_pkt_buffer,icmp_header_buffer_index);
; ^) Q5 H5 ?4 H9 l- W/ ^     & j, T) a+ m* z  L( i
    icmp_header
' f$ W8 ~9 u' i% n  I     % G: D# a, @3 A" y. y1 P
    以上代码可以直接在时代互联的ASP+ASP.NET 虚拟主机上直接运行,欢迎试用 !到<a href="http://www.now.net.cn/host" target="_blank" >www.now.net.cn/host</A> 订购后可试用 !
7 X0 f% Y, {* i7 W* ^* R2 i) d     . H% ]2 E. j! R; T9 f9 j7 W
     关于ASP+ASP.NET高速虚拟主机,也有同时支持JSP(JAVA) 和PHP的综合虚拟主机。也可以试用,其他问题可以有免费网络电话咨询, 6 i/ y0 a- u/ v0 {% R8 o5 N# L
     欢迎随时联系 <a href="http://www.now.net.cn/customer/moreline.net" target="_blank" >http://www.now.net.cn/customer/moreline.net</A> </P>; L6 @3 o* K* {, k) }4 l  U' _( s: E, x
<>时代互联(<a href="http://www.now.net.cn" target="_blank" >www.now.net.cn</A>) 的虚拟主机,免费配有 CDN 镜象网络加速 ,送域名 邮箱,流量访问系统,留言版,计数器! : ], G  _9 _1 v$ S4 L
     
1 @1 H4 k! B- Z# e    虚拟主机在线订购试用,请到: <a href="http://www.now.net.cn/host" target="_blank" >http://www.now.net.cn/host</A>
0 |) ?  @! d7 J* z5 f- L3 M    域名+空间的优惠套餐可见 : <a href="http://www.now.net.cn/special/" target="_blank" >http://www.now.net.cn/special/</A>
" ?) s& C% q" I# F/ I     4 Q( E+ @' Z1 g" a  [: j9 ]) u
    如有问题要咨询,时代互联提供免费咨询电话,点击这里: <a href="http://www.now.net.cn/customer/moreline.net" target="_blank" >http://www.now.net.cn/customer/moreline.net</A> 0 ~( ^; V- y3 _! \# @" Q, B
    QQ 联系 :405881840 108786612 </P>  `8 x3 `! s8 ?; J9 A  h0 Y
<>----------------------------------------------------------------------------------------------------------------------------</P>0 u* j; t, p1 I- N+ A) R- W  Y
<>% l2 X# b* p7 C8 a: {
       主机租用,折上有礼,租用9折优惠加送价值3600的CDN 主机加速器 !详情见: <a href="http://www.todayidc.com" target="_blank" >http://www.todayidc.com</A>
/ n) |$ F3 n4 x; e  i6 i7 E" a: h     
- h/ T2 o7 V& w' }3 B: S6 p% o    企业邮局—— 立企业的统一形象,自由增加帐号 划分大小,不限制附件大小,繁、简、英3种界面智能显示。强大Anti-SPAM反垃圾邮件使用专业杀 引擎Anti-VIRUS,在线实时自动杀  ,价 超低! <a href="http://www.now.net.cn/email/" target="_blank" >http://www.now.net.cn/email/</A>   c! K( @1 j' w1 t  F
       P: n/ }: m# T( h
    智能建站——3分钟就建立了数据库功能的网络交易平台,只要填写公司的资料或图片,就可建成网站。免费试用到 : <a href="http://www.now.net.cn/auto/" target="_blank" >http://www.now.net.cn/auto/</A>
$ B6 |: ~. N  W3 b( _1 K# y     ' B0 W2 t' l/ g& Q+ B1 b$ P2 S8 h' c
    繁简通—— 300 元就给你一个完全同 的繁体网站,方便开拓 外市场!免费试用到: <a href="http://www.now.net.cn/fjt/" target="_blank" >http://www.now.net.cn/fjt/</A>
; p# U' a, i& }     
7 t! Z  |1 A3 H$ r2 ?. B' e/ I    动态域名——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-25 09:20 , Processed in 3.561912 second(s), 58 queries .

回顶部