Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [?] Consiglio su come ricavare l'indirizzo IP...

    Ciao raga,
    scusate se sbaglio a postare qui ma non so proprio da che parte cominciare. :master:

    Vi spiego il mio problema:
    ho bisogno che all'avvio di un qualsiasi Windows venga eseguito un comando che mi peschi l'indirizzo IP che mi è stato assegnato dal provider al momento della connessione e che venga inserito in un DB access.

    Per ricavare visualmente il mio IP so che si può utilizzare 'ipconfig' e volendo si potrebbe inserire l'istruzione per ricavarlo nell'autoexec.bat

    Attualmente ho raggirato il problema immettendo nella lista di esecuzione automatica il collegamento con una pagina ASP dove ho costruito un codice che interroga un'altra pagina ASP in un mio sito web nel www che restiuisce alla prima l'indirizzo IP tramite le 'ServerVariables'.
    Poi tramite ASP + ADO scrivo nel DB access l'indirizzo ricavato e sono apposto.

    Solo che questa soluzione mi serve a poco visto che mi serve che l'IP venga ricavato in automatico anche senza accedere al Windows... sì insomma che sia tipo un servizio di sitema.

    Che mi consigliate?
    Mi dò all'ippica?

    Scusatemi ancora se ho cannato forum e spero siate in questo caso, così gentili da indirizzarmi a quello giusto.

    Ciao e grazie a chiunque volesse darmi una mano!
    ---WilloW-ZeroZero---

  2. #2
    codice:
    void CFindIP::OnBnClickedFind()
    {
    	WORD wVersionRequested = MAKEWORD(1,1);
    	WSADATA wsaData;
    	CString szSite, szBuf;
    
    	m_ctrlSite.GetWindowText(szSite);
    	m_ctrFoundIPs.ResetContent();
    
    	//La casella era vuota
    	if(szSite.IsEmpty())
    	{
    		AfxMessageBox("Non hai specificato alcun sito");
    		return;
    	}
    
    	//Inizial l'uso di Ws2_32.dll da parte del prog e ne "negozia"
    	//la versione
    	if(WSAStartup( wVersionRequested, &wsaData ) != 0)
    	{
    		AfxMessageBox("Impossibile trovare una dll Winsock adatta");
    		WSACleanup();
    		return;
    	}
    
    	//Test sullo stato della conessione (evita l'apertura) di
    	//quella fastidiosa finestra di connessione a ogni pressione del
    	//pulsante.
    	LPDWORD lpdwFlags = NULL;
    	if(!InternetGetConnectedState(lpdwFlags,0))
    	{
    		AfxMessageBox("E' necessaria una connessione attiva\nper questa funzione");
    		return;
    	}
    		
    	//Puntatore a una struttura che riceverà i dati
    	hostent *host;
    	//Ricava le informazioni richieste da un database di host
    	host = gethostbyname(LPCSTR(szSite));
    	//Fallimento
    	if(!host)
    	{
    		m_ctrFoundIPs.AddString("Impossibile trovare un IP");
    		WSACleanup();
    		return;
    	}
    	//Indirizzo non IPv4
    	if(host->h_length != 4)
    	{
    		AfxMessageBox("Indirizzo di tipo non supportato");
    		WSACleanup();
    		return;
    	}
    	//Aggiunge alla lista gli IP trovati
    	flag = FALSE;
    	for(int i = 0; host->h_addr_list[i]; i++)
    	{
    		szBuf.Format("%s",inet_ntoa(*( (struct in_addr *)host->h_addr_list[i])));
    		flag = TRUE;
    		m_ctrFoundIPs.AddString(szBuf);	
    	}
    	//Termina l'uso di Ws2_32.dll.
    	WSACleanup();
    }
    Questo è un gestore di messaggi di un'applicazione MFC che ho scritto.Il linguaggio è C++ ma utilizza anche delle API del sistema operativo.vedi se ti va bene,se no adattalo.ciao
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.