source: libmono-lliurex-utils/trunk/libmono-lliurex-utils/Network.cs @ 341

Last change on this file since 341 was 341, checked in by mabarracus, 5 years ago

ported pandora code

File size: 2.1 KB
Line 
1
2using System;
3using System.Net;
4
5namespace lliurex
6{
7       
8        namespace net
9        {
10       
11        public class Network
12        {
13       
14                        public static String [] getEthDevices()
15                        {
16                                string stdo, stde;
17                                string tmp;
18                               
19                                lliurex.utils.Commands.run("/usr/bin/lliurex-net","get_network_cards", out stdo, out stde);
20                               
21                                tmp = stdo.TrimEnd('\n');
22                               
23                                return tmp.Split(' ');
24                        }
25                       
26                        public static bool getEthLink(string device)
27                        {
28                                string stdo, stde;
29                                string tmp;
30                               
31                                lliurex.utils.Commands.run("/usr/bin/lliurex-net","get_link_status "+device, out stdo, out stde);
32                                tmp = stdo.TrimEnd('\n');
33                                if (tmp.Equals("UP"))
34                                {
35                                        return true;   
36                                }
37                                else
38                                {
39                                        return false;
40                                }
41
42                        }
43                       
44                        public static String getEthMac(string device)
45                        {
46                       
47                                string stdo,stde;
48                               
49                                lliurex.utils.Commands.run("/usr/bin/lliurex-net","get_mac "+device, out stdo, out stde);
50                               
51                                return stdo.TrimEnd('\n');
52                               
53                        }
54                       
55                        public static String getSrvDevice()
56                        {
57                                string stdo, stde;
58                                lliurex.utils.Commands.run("/usr/bin/lliurex-net","get_srv_nic", out stdo, out stde);
59                               
60                                return stdo.TrimEnd('\n');
61                        }
62                       
63                        public static bool isValidIP(string ip)
64                        {
65                                ip=ip.Trim();
66                               
67                                string regexString = @"^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$";
68                System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(regexString);
69                System.Text.RegularExpressions.Match match = regex.Match(ip);
70                return match.Success;
71                        }
72                       
73                        public static bool isValidMask(string address)
74                        {
75                                IPAddress mask = IPAddress.Parse(address);
76                               
77                                byte[] maskbytes = mask.GetAddressBytes();
78                               
79                               
80                                int x;
81                                int aux; 
82                               
83                                bool endOfOnes=false;
84                                for (int b=0; b<4; b++)
85                                {
86                               
87                                        for (int i =7; i>=0; i--)
88                                        {
89                                                x= (int)Math.Pow(2,(double)i);
90                                               
91                                                aux = maskbytes[b] & x;
92                                                if(aux==0)
93                                                {
94                                                        endOfOnes=true;
95                                                }
96                                               
97                                                else if (endOfOnes)
98                                                {
99                                                        return false;   
100                                                }
101                                        }
102                               
103                                }
104                                return true;
105                        }
106                       
107                       
108                       
109                       
110                       
111        }
112}
113
114       
115}
Note: See TracBrowser for help on using the repository browser.