rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Programme c sockets tcp/ip inux/win

  numok, le lundi 7 avril 2008 à 15:26:15
Bonjour,
je suis étudiant en informatique et j'ai une parti de mon projet qui m'empêche d'avancer.

En effet notre objectif est d'ecrire un programme qui a partir d'une adresse IP litterale fournie en argument,affiche l'adresse IP numériques sous forme décimale pointé,tout cela en langage C.

voici les données:

1 OBJECTIF :
Programmer les sockets TCP/IP sur réseau local de type UNIX et Windows.
Matériel : stations de type PC avec Windows XP/Linux.
compétences : programmation (C/C++), connaissance des commandes UNIX de base. Tout appel
système devra être testé.
2 ADRESSAGE IP
On rappelle les structures relatives à l'adressage Internet ainsi que quelques utilitaires de
manipulation.
#include <netinet/in.h>
struct in_addr { u_long s_addr; };
struct sockaddr_in {
short int sin_family; // domaine AF_INET
u_short int sin_port; // port de la socket
struct in_addr sin_addr; // N° IP de la machine au format réseau
unsigned char sin_zero[8]; // 8 charactères nuls de bourrage
};
struct in_addr {
unsigned long s_addr; // IP address 32-bit
};
Network byte order is “most significant byte first”
1.2.3.4 stored as Host byte order could be either “most significant byte first” or “least significant
byte first”
There are functions to convert a number between host and network byte order:
long htonl(long)
short htons(short)
long ntohl(long)
short ntohs(short)
To obtain a 32-bit address in network order from a string :
long inet_addr(“1.2.3.4”)
To obtain a dotted-notation string from the address in 32-bit :
char* inet_ntoa(struct in_addr)
La fonction gethostbyname (rechercher une machine par son nom) accepte un nom de domaine et
renvoie un pointeur vers une structure qui contient l'information relative à cette machine. L'appel est
le suivant :
ptr = gethostbyname (char *chaine_nom) ;
la structure où gethostbyname met les informations est la suivante :
struct hostent {
char *h_name;
char **h_aliases;
int h_addrtype;
int h_length;
char **h_addr_list;
};
#define h_addr h_addr_list[0] /* pour compatibilité. */
Ecrire un programme qui à partir d'une adresse IP littérale fournie en argument, affiche l'adresse IP
numérique sous forme décimale pointée.
La fonction gethostbyaddr ( rechercher une machine par son adresse) produit le
même résultat . La différence entre les deux est que cette fonction a pour argument
l'adresse de la machine.
ptr = gethostbyaddr (char *addr,int lgr,int type ) ;
addr pointe vers l'adresse de la machine.
lgr longueur de l'adresse.
type indique le type d'adresse ( adresse IP par exemple ).

Ecrire un programme qui à partir d'une adresse IP numérique fournie en argument, affiche l'adresse
IP sous forme littérale (on utilisera struct in_addr).

Avis aux fan de programmation et de réseau de m'aider,merci beaucoup.
Configuration: Windows XP
Firefox 1.0.7
Répondre à numok  Signaler ce message aux modérateurs
Logiciels pertinents trouvés dans les téléchargements
Télécharger PSPad 4.5.2PSPad - PSPad est un excellent éditeur de texte. Il est utile pour travailler sur du simple texte, mais aussi sur du HTML, CSS,...Catégorie: Développement
Licence: Freeware/gratuit
Télécharger Ipod converter 3.07Ipod converter - Destiné aux heureux possesseurs d'Ipod vidéo, le logiciel Ipod Converter permet de convertir des fichiers au format Mpeg,...Catégorie: Edition vidéo
Licence: Freeware/gratuit
Télécharger Windows Defender pour Windows XP/Vista February 15, 2007Windows Defender pour Windows XP/Vista - Windows Defender est un programme gratuit permettant de se protéger des pop-ups, des ralentissement et des failles de...Catégorie: Anti-Spyware
Licence: Freeware/gratuit
Télécharger WinRAR 3.71WinRAR - WinRAR est la version 32 bits de l'archiveur RAR . Il compresse les fichiers jusqu'à 15% de mieux que les archiveurs...Catégorie: Compression/Décompression
Licence: Shareware
Plus de logiciels gratuits sur « programme c sockets tcp/ip inux/win »