Rev 7252 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
3107 | leency | 1 | //Network library |
5598 | pavelyakov | 2 | #ifndef INCLUDE_NETWORK_H |
3 | #define INCLUDE_NETWORK_H |
||
3107 | leency | 4 | |
5598 | pavelyakov | 5 | #ifndef INCLUDE_KOLIBRI_H |
6 | #include "../lib/kolibri.h" |
||
7 | #endif |
||
8 | |||
9 | #ifndef INCLUDE_DLL_H |
||
10 | #include "../lib/dll.h" |
||
11 | #endif |
||
3107 | leency | 12 | dword network_lib = #a_network_lib; |
7252 | leency | 13 | char a_network_lib[]="/sys/lib/network.obj"; |
3107 | leency | 14 | |
7283 | leency | 15 | dword network_lib_init = #aInet_init; |
3107 | leency | 16 | dword inet_addr = #aInet_addr; //"192.168.0.1" -> dword IP |
17 | dword inet_ntoa = #aInet_ntoa; |
||
18 | dword getaddrinfo = #aGetaddrinfo; |
||
19 | dword getaddrinfo_start = #aGetaddrinfo_start; |
||
20 | dword getaddrinfo_process = #aGetaddrinfo_process; |
||
21 | dword getaddrinfo_abort = #aGetaddrinfo_abort; |
||
22 | dword freeaddrinfo = #aFreeaddrinfo; |
||
3839 | Asper | 23 | $DD 2 dup 0 |
3107 | leency | 24 | |
7283 | leency | 25 | char aInet_init[] = "lib_init"; |
7252 | leency | 26 | char aInet_addr[] = "inet_addr"; |
27 | char aInet_ntoa[] = "inet_ntoa"; |
||
28 | char aGetaddrinfo[] = "getaddrinfo"; |
||
29 | char aGetaddrinfo_start[] = "getaddrinfo_start"; |
||
30 | char aGetaddrinfo_process[] = "getaddrinfo_process"; |
||
31 | char aGetaddrinfo_abort[] = "getaddrinfo_abort"; |
||
32 | char aFreeaddrinfo[] = "freeaddrinfo"; |
||
3107 | leency | 33 | |
34 | /* |
||
35 | addr соответствует IP 10.101.102.103 |
||
36 | itoa((addr&0xFF000000)>>24) равно 103 |
||
37 | itoa((addr&0xFF0000)>>16) —это 102 |
||
38 | itoa((addr&0xFF00)>>8) — это 101 |
||
39 | itoa(addr&0xFF) — это 10 |
||
40 | */ |
||
41 | |||
42 | dword GetIPfromAdress(dword addr) |
||
43 | { |
||
44 | dword lpointer, IPa; |
||
45 | getaddrinfo stdcall (addr, 0, 0, #lpointer); |
||
46 | if (EAX!=0) IPa = 0; else IPa = DSDWORD[DSDWORD[lpointer+24]+4]; |
||
47 | freeaddrinfo stdcall (lpointer); |
||
48 | return IPa; |
||
49 | } |
||
50 | |||
51 | /* |
||
52 | //Convert the string from standard IPv4 dotted notation to integer IP addr. |
||
53 | inet_addr stdcall ("192.168.0.1"); |
||
54 | server_IP = EAX; |
||
55 | |||
56 | |||
57 | char* __stdcall inet_ntoa(struct in_addr in); |
||
58 | Convert the Internet host address to standard IPv4 dotted notation. |
||
59 | |||
60 | getaddrinfo(__in const char* hostname, __in const char* servname, |
||
61 | __in const struct addrinfo* hints, __out struct addrinfo **res); |
||
62 | struct addrinfo { |
||
63 | int ai_flags; |
||
64 | int ai_family; |
||
65 | int ai_socktype; |
||
66 | int ai_protocol; |
||
67 | size_t ai_addrlen; |
||
68 | struct sockaddr *ai_addr; |
||
69 | char *ai_canonname; |
||
70 | struct addrinfo *ai_next; |
||
71 | }; |
||
72 | */ |
||
5598 | pavelyakov | 73 | |
74 | #endif |