Vad gör kommandot iwconfig wlan0 ap off?

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
ubot
Inlägg: 4613
Blev medlem: 04 jan 2008, 14:03
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS

Vad gör kommandot iwconfig wlan0 ap off?

Inlägg av ubot »

Jag skolkade från engelskalektionen och förstår inte riktigt vad kommandot

Kod: Markera allt

iwconfig wlan0 ap off
gör? Har jag rätt om jag säger att det återansluter till den Access Point som wlan:et använde innan? Är det någon som har lust att förklara skillnaden mellan iwconfig wlan0 ap auto|any|off? Jag förstår inte riktigt vad det står i man iwconfig.
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Vad gör kommandot iwconfig wlan0 ap off?

Inlägg av Osprey »

Som jag kan se så innebär "off" precis som du säger samma sak som att säga "iwconfig nätverk ap nuvarande-ap", medan "any" och "auto" innebär att den istället försöker leta upp vilken AP som för tillfället ger den bästa signalkvaliten.

I källkoden innebär "any" och "auto" exakt samma sak, typ 'if ("any" or "auto")'. Varför de har valt två olika ord för samma sak vet jag inte, men båda orden är fullt gångbara och vilket som känns mest rätt beror väl lite på hur man tänker sig det... :)

[Edit] Rent konkret så ser det ut så här i källkoden:

Kod: Markera allt

/*------------------------------------------------------------------*/
/*
 * Set AP Address
 */
static int
set_apaddr_info(int             skfd,
                char *          ifname,
                char *          args[],         /* Command line args */
                int             count)          /* Args count */
{
  struct iwreq          wrq;

  /* Avoid "Unused parameter" warning */
  count = count;

  if((!strcasecmp(args[0], "auto")) ||
     (!strcasecmp(args[0], "any")))
    {
      /* Send a broadcast address */
      iw_broad_ether(&(wrq.u.ap_addr));
    }
  else
    {
      if(!strcasecmp(args[0], "off"))
        {
          /* Send a NULL address */
          iw_null_ether(&(wrq.u.ap_addr));
        }
      else
        {
          /* Get the address and check if the interface supports it */
          if(iw_in_addr(skfd, ifname, args[0], &(wrq.u.ap_addr)) < 0)
            {
              errarg = 0;
              return(IWERR_ARG_TYPE);
            }
        }
    }

  if(iw_set_ext(skfd, ifname, SIOCSIWAP, &wrq) < 0)
    return(IWERR_SET_EXT);

  /* 1 args */
  return(1);
}
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Skriv svar

Återgå till "Terminalforum"