Ir para conteúdo
Fórum Script Brasil
  • 0

Conversão de Código de Linux em C


codak@outlook.com.br

Pergunta

Boa noite! preciso urgente da ajuda de vocês, tenho um codigo aqui porem e para windows e c++, gostaria do mesmo para linux em c

 

#include <windows.h>
#include <ras.h>
#include <stdio.h>
#include <conio.h>

#ifndef __cplusplus
typedef enum { false, true } bool;
#endif

#define ESC 27

//---------------------------------------------------------------------------
int __fastcall EnumConnections(LPRASCONN *lppRasConn)
{
  LPRASCONN lpRasConn;
  DWORD cb = 0, cConnections = 0;

  // Verifica quantas conexões estão ativas
  RasEnumConnections(0, &cb, &cConnections);
  if(cConnections)
  {
    // Aloca memória p/ as conexões
    lpRasConn = (LPRASCONN)GlobalAlloc(GPTR, sizeof(RASCONN) * cConnections);

    // Se falhar retorna -1
    if(!lpRasConn)
      return -1;

    // Pega as propriedades das conexões
    lpRasConn[0].dwSize = sizeof(RASCONN);
    cb = sizeof(RASCONN) * cConnections;
    if(RasEnumConnections(lpRasConn, &cb, &cConnections))
    {
      // Se falhar, libera memória e retorna -1
      GlobalFree(lpRasConn);
      return -1;
    }

    // Atribue o buffer ao ponteiro passado como parâmetro,
    // nunca se esquecer de liberar a memória quando o buffer
    // não for mais utilizado.
    *lppRasConn = lpRasConn;
  }

  // Retorna o número de conexões
  return cConnections;
}
//---------------------------------------------------------------------------
void main()
{
  LPRASCONN lpRasConn;
  int cConnections;
  char key = 0;
  int oldCount = -2;
 
  while(key != ESC)
  {
    cConnections = EnumConnections(&lpRasConn);
    
    if(kbhit())
      key = getch();

    if(oldCount != cConnections)
    {
      oldCount = cConnections;
      clrscr();
      
      switch(cConnections)
      {
        case -1:
          printf("Erro verificando conexões.");
        return;
      
        case 0:
          printf("Nenhuma conexão ativa.");
        break;
        
        default:
          for(int c = 0; c < cConnections; c++)
          {
            RASCONNSTATUS RasConnStatus;
            RasConnStatus.dwSize = sizeof(RASCONNSTATUS);
            RasGetConnectStatus(lpRasConn[c].hrasconn, &RasConnStatus);
      
            printf("%s - %s - %s\n", lpRasConn[c].szEntryName,
                   lpRasConn[c].szDeviceName,
                   RasConnStatus.rasconnstate ==
                          RASCS_Connected ? "Conectado" : "Não conectado");
 
          }
      }
 
      GlobalFree(lpRasConn);
    }
  }
}

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
3 horas atrás, vangodp disse:

não sei se ras.h funciona en linux porem conio.h e windows.h você teria que substitui-las por outra biblioteca mas não conheço qual alternativas você deveria utilizar porque não programo en linux.

Obg amigo, o problema e que tenho um trabalho na facul..... preciso criar um projeto no qual  apos executar, me permita verificar se estou conectado a internet ou não, quem poder disponibilizar um exemplo ou código obg....

Link para o comentário
Compartilhar em outros sites

  • 0

Nessa pagina tem um exemplo de um programa feito com socketes que dado a direção de uma pagina, devolve a direção ip da mesma, ele possui um sistema de comprovação, certamente seria boa alternativa. http://www.binarytides.com/hostname-to-ip-address-c-sockets-linux/

Se você passar tipo www.google.com ele deveria devolver uma ip, caso contrario daria um erro. Seria caso você adaptar ele. Não me pergunte se funciona, pois não tenho linux, e também não sei muito de socketes. É toda a ajuda que posso lhe oferecer.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...