Inclure des commandes bash dans C
crypto
-
crypto -
crypto -
Bonjour,
Je souhaite savoir comment inclure des commandes que l'on utilise dans un terminal dans un programme en C.
Exemple avec la plus banal des commandes , ifconfig, dans cette exemple je veux qui m'affcihe le résultat de la commande et qu'il change le MTU.
system("ifconfig");
sleep(60);
if (MTU==1500)
{
system("commande pour mettre le MTU a 1400 par exemple")
}
break;;
Est-ce possible d'agir comme ceci? ou y a t-il plus simple?
Mon but et de m'habituer au C vu que je connais déga bien le bash.
Je souhaite savoir comment inclure des commandes que l'on utilise dans un terminal dans un programme en C.
Exemple avec la plus banal des commandes , ifconfig, dans cette exemple je veux qui m'affcihe le résultat de la commande et qu'il change le MTU.
system("ifconfig");
sleep(60);
if (MTU==1500)
{
system("commande pour mettre le MTU a 1400 par exemple")
}
break;;
Est-ce possible d'agir comme ceci? ou y a t-il plus simple?
Mon but et de m'habituer au C vu que je connais déga bien le bash.
A voir également:
- Bash to c
- Qwerty to azerty - Guide
- Bingo bash - Télécharger - Divers Jeux
- Video to video - Télécharger - Conversion & Codecs
- Majuscule to minuscule - Guide
- Bat to exe converter - Télécharger - Édition & Programmation
12 réponses
Je t'ai dit que la commande c'est plutôt sur le forum GNU/Linux qu'il faut aller...
Ce que tu fais ce n'est pas du C, mais juste l'encapsulation de shell dans du C via system.
Je redirige donc ton post...
Ce que tu fais ce n'est pas du C, mais juste l'encapsulation de shell dans du C via system.
Je redirige donc ton post...
Salut,
mais juste l'encapsulation de shell dans du C via system
Donc la base c'est du C, non ?
Il aura plus de chance d'avoir des réponses dans Programmation qu'ici ;-\
Mon but et de m'habituer au C vu que je connais déga bien le bash.
Ou alors j'ai mal compris ;-(
mais juste l'encapsulation de shell dans du C via system
Donc la base c'est du C, non ?
Il aura plus de chance d'avoir des réponses dans Programmation qu'ici ;-\
Mon but et de m'habituer au C vu que je connais déga bien le bash.
Ou alors j'ai mal compris ;-(
Ce qu'il semble le bloquer est la commande pour changer le MTU.
Une fois qu'il l'aura, il n'aura plus qu'à mettre exactement la même commande dans la fonction system(). Donc à mon sens c'est du Linux.
D'ailleurs tout ce qu'on met dans la fonction system() relève plus du shell puisque c'est le propre de cette fonction.
Une fois qu'il l'aura, il n'aura plus qu'à mettre exactement la même commande dans la fonction system(). Donc à mon sens c'est du Linux.
D'ailleurs tout ce qu'on met dans la fonction system() relève plus du shell puisque c'est le propre de cette fonction.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
+1 zip31 je veux pouvoir faire fonctionner des commandes bash avec les "if" "else" du C.
On va prendre un autre exemple le MTU c'est vrai c'est pas top, dans l'exemple qui va suivre je veux changer mon adresse mac par rapport a celle d'origine donc est-ce que si je fais:
system("ifconfig");
sleep(60);
if (MAC==00:26:1B:30:65:90)
{
system("ifconfig wlan0 hw ether 00:11:22:33:44:55")
}
break;;
c'est bon comme ça?
On va prendre un autre exemple le MTU c'est vrai c'est pas top, dans l'exemple qui va suivre je veux changer mon adresse mac par rapport a celle d'origine donc est-ce que si je fais:
system("ifconfig");
sleep(60);
if (MAC==00:26:1B:30:65:90)
{
system("ifconfig wlan0 hw ether 00:11:22:33:44:55")
}
break;;
c'est bon comme ça?
Je vais faire un récapitulatif que les choses soient claires.
La fonction system("") te permet d'émuler le shell (grosso modo). Donc tout ce que tu mets dans cette fonction, c'est ce que tu obtiendras si tu avais tapé la commande dans ton shell. Donc si tu cherches une commande (comme pour changer le MTU) via system c'est ici que tu dois demander.
Pour tout ce qui n'est pas de la fonction system(), tu dois demander sur Programmation.
De plus, ne compte pas sur la fonction system() pour récupérer des variables.
Si tu veux récupérer l'adresse MAC, ce n'est pas avec system("ifconfig").
Il faudra utiliser des vraies fonctions en C. Et dans ce cas c'est bien sur la partie programmation que tu dois demander.
J'espère que c'est plus clair.
A toi de voir ce que tu veux vraiment et de bien l'écrire.
Cdlt,
La fonction system("") te permet d'émuler le shell (grosso modo). Donc tout ce que tu mets dans cette fonction, c'est ce que tu obtiendras si tu avais tapé la commande dans ton shell. Donc si tu cherches une commande (comme pour changer le MTU) via system c'est ici que tu dois demander.
Pour tout ce qui n'est pas de la fonction system(), tu dois demander sur Programmation.
De plus, ne compte pas sur la fonction system() pour récupérer des variables.
Si tu veux récupérer l'adresse MAC, ce n'est pas avec system("ifconfig").
Il faudra utiliser des vraies fonctions en C. Et dans ce cas c'est bien sur la partie programmation que tu dois demander.
J'espère que c'est plus clair.
A toi de voir ce que tu veux vraiment et de bien l'écrire.
Cdlt,
D'accord donc pour récupéré les variables tel que l'adresse MAC je dois inclure quoi dans le prog si je reprend l'exemple que j'ai donné?
Ca m'avance pas beaucoup
Beh normal. Un coup tu veux faire du C, un coup tu fais du Shell...
Pour la réponse :
L'adresse MAC se trouve dans : buf.ifr_hwaddr.sa_data
Beh normal. Un coup tu veux faire du C, un coup tu fais du Shell...
Pour la réponse :
int main (void) { struct ifreq buf; int d; d = socket(PF_INET, SOCK_DGRAM, 0); memset(&buf, 0, sizeof buf)); strcpy(buf.ifr_name, "TON INTERFACE"); ioctl(d, SIOCGIFHWADDR, &buf); close(d); return 0; }
L'adresse MAC se trouve dans : buf.ifr_hwaddr.sa_data
Ok merci ^^ pourrais tu me donner une liste de fonction pour récupéré plus de choses, le nom de mon réseau, le cryptage, l'addresse mac du réseau, le canal etc...
Je tente de faire en sorte que si trop de monde se connecte sur ma box (par exemple pas plus de 4 personne en wifi) l'accès en soit refusé avec un temps d'attente jusqu'a ce que quelq'un se deconnecte.
Je tente de faire en sorte que si trop de monde se connecte sur ma box (par exemple pas plus de 4 personne en wifi) l'accès en soit refusé avec un temps d'attente jusqu'a ce que quelq'un se deconnecte.