Jump to content
Golden-boy

Etablir une connexion ADSL en C/C++

Recommended Posts

Salut !

 

Je cherche depuis 6 mois comment créer un programme en C ou en C++ un peu comme ADSL autoconnect mais impossible de trouver comment établir un connexion ADSL ou comment vérifier son état.

Si quelqu'un pouvait m'aider ça serait vraiment génial, je sui même prêt à apprendre tout un autre langage rien que pour créer ce fichu programme.

merci.

Share this post


Link to post
Share on other sites

Bonjour,

Ta oublier d'indiquer l'OS sur linux je croix que c'est super facile en utilisant le terminal Windows i dont know.

bonne chance

Share this post


Link to post
Share on other sites

Si tu ne trouves pas d'implémentation toute prête d'un protocole, tu peux te servir directement sur son RFC :), on peut trouver celle du PPPoE par exemple sans problème, une traduction en FR de de celle du PPPoE l'RFC 2516.

 

bon courage

Share this post


Link to post
Share on other sites

merci mouradski mais ce n'est pas vraiment ce que je cherche mon programme doit communiquer avec Windows pour qu'il établie une connexion PPPoE et c'est Windows qui s'occupe du protocol, les programmes ne peuvent pas accéder à ça.

Share this post


Link to post
Share on other sites

Salut, tu peux aussi utiliser les objets ole de l'api com de windows, ça te permettra de "simuler" le clique sur connecter, j'avais fait un truque du genre sous delphi, je te donne le code, je traduirai en cpp dès que j'ai le temps ;) :

uses ComObj;

procedure SwitchOnOff;
var
  sConnectionName : string;
  sEnableVerb : string;
  sDisableVerb : string;
  shellApp, oControlPanel, oNetConnections, oLanConnection: OleVariant;

  I, J: integer;
  bEnabled: boolean;
  oEnableVerb, oDisableVerb: Variant;
  s: string;

function NormalString(S: string): string;
var
 I: Integer;
begin
 Result := '';
 for I := 1 to Length(S) do
 begin
   if (S[i] >= 'A') and (S[i]       S[i] := Char(Word(S[i]) or $0020);
   case S[i] of
     ' ': ;
     '&': ;
     'é', 'è', 'ê': Result := Result + 'e';
     else Result := Result + S[i];
   end;
 end;
end;

function IsConnectFolder(S: string): Boolean;
begin
 S := NormalString(S);
 Result := (S = 'connexionsreseau') or (S = 'networkconnection');
end;

function IsEnableConnect(S: string): Boolean;
begin
 S := NormalString(S);
 Result := (S = 'activer') or (S = 'activate') or (S = 'seconnecter') or (S = 'connect');
end;
begin
  shellApp := CreateOleObject('shell.application');
  oControlPanel := shellApp.Namespace(3);

  oNetConnections := Null;
  for I := 0 to oControlPanel.Items.Count - 1 do
  begin
     if IsConnectFolder(oControlPanel.Items.item(I).Name) then
     begin
        oNetConnections := oControlPanel.items.Item(I).getfolder;
        Break;
     end;
  end;
  if VarIsNull(oNetConnections) then
  begin
    if oControlPanel.Items.Count > 3 then
      oNetConnections := oControlPanel.items.Item(3).getfolder
    else
      Exit;
  end;

  for I := 0 to oNetConnections.items.count - 1 do
  begin
    oLanConnection := oNetConnections.items.item(I);
    for J := 0 to oLanConnection.verbs.Count - 1 do
      if IsEnableConnect(oLanConnection.verbs.item(J).name) then
      begin
         oLanConnection.invokeverb(oLanConnection.verbs.item(J).name);
         oLanConnection.verbs.item(J).DoIt;
	  Break;
      end;
  end;
end;

cette procedure te connecte ou te déconnecte selon ton état initial ..

j'avoue ce n'est pas très propre comme méthode, mais sa a le mérite de fonctionner;

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.




  • Posts

    • Sans oublier votre numéro de compte ccp si vous l'avez pas en tête.  
    • Le projet de plateforme en commun pour les deux solutions (CIB et Edahabia) est prévu depuis longtemps mais ils n'ont pas pu le réaliser car le niveau de norme de la poste été supérieur à ceux des banques, ce qui causait un problème. Les banques travaillent cet aspect justement dans ce but, je ne sais pas ou ils en sont au jour d'aujourd'hui.
    • Bonsoir, La carte est envoyé a la poste selon le code postal indiqué lors de sa commande. Il faut partir a la poste ayant le bon code postal indiqué. Généralement c'est un guichet spécial, il faut juste demander à l'entrée quel guichet s'occupe des livraisons de cartes et faire la queue   tu devras fournir une pièce d'identité puis signer et poser tes empreinte attestant que tu as récupéré la carte. Et voila.
    • Bonsoir, Passer par DHL n'est aucunement une garantie de livraison sans passer par la douane. Ils peuvent très bien leur demander de payer une taxe sur le produit acheté que tu devras payer dans le cas ou tu voudrais le récupérer. Je déconseille fortement l'achat de produit de grande valeur pour une livraison en Algérie. Le mieux serais de se le faire livrer par quelqu'un venant en Algérie. Bonne chance
×
×
  • Create New...