Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: Преобразование IP, очень интересно.
     
    
Добавлено: 28.09.04 13:53
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
     astoro | ICQ: 649109
 astoro | ICQ: 649109 
      
       
  
Есть IP-адрес 209.207.224.40 или вообще любой другой.
 
    
Он преобразовывается  к одному числу при помощи формулы 
209*256^3 + 207*256^2 + 224*256^1 + 40*256^0 = 3520061480
SQL имеет функцию как прямого (INET_ATON), так и обратного (INET_NTOA) преобразования. Вопрос как она преобразовывает IP в число - не стоит. А вот как она преобразует его обратно? Кто нить знает?
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 7
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа: boevik
 boevik






Хранитель чата
ICQ: 137392264 
Вопросов: 8
Ответов: 557
      
 Web-сайт:  
 Профиль |  | #1
      
Добавлено:  28.09.04 14:03
       
    
       
  
Делишь число на 256^3, частное это первое число IP
 
    
остаток делишь на 256^2, получишь частное и это второе число IP и т.д.
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа: Шпион
 Шпион

ICQ: 250543104 
Вопросов: 13
Ответов: 118
      
 Профиль |  | #2
       
Добавлено:  28.09.04 14:12
       
    
       
  
Private Sub Form_Load()
 
    
div1 = 256 ^ 1
div2 = 256 ^ 2
div3 = 256 ^ 3
a = 3520061480#
a1 = Int(a / div3)
a = a - a1 * div3
a2 = Int(a / div2)
a = a - a2 * div2
a3 = Int(a / div1)
a4 = a - a3 * div1
End Sub
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа: astoro
 astoro




ICQ: 649109 
Вопросов: 31
Ответов: 391
      
 Профиль |  | #3
       
Добавлено:  29.09.04 12:59
       
    
       
  
Спасибо, что-то математика в голове сбой дала  
     )
)
		
	  
			 
	
		 
    
       
    
Номер ответа: 4 
      
Автор ответа: mc-black
 mc-black


ICQ: 308-534-060 
Вопросов: 20
Ответов: 1860
      
 Web-сайт:  
 Профиль |  | #4
      
Добавлено:  29.09.04 14:01
       
    
       
  
> 209*256^3 + 207*256^2 + 224*256^1 + 40*256^0 = 3520061480
 
    
ошибочка, т.к. любое число в степени 0 дает единицу, надо так:
209*256^4 + 207*256^3 + 224*256^2 + 40*256^1 =
Обратное преобразование понятно из hex-представления твоего результата.
		
	  
			 
	
		 
    
       
    
Номер ответа: 5 
      
Автор ответа: astoro
 astoro




ICQ: 649109 
Вопросов: 31
Ответов: 391
      
 Профиль |  | #5
       
Добавлено:  29.09.04 14:21
       
    
       
  
Ошибаешься, все правильно, именно ^0
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 6 
      
Автор ответа: Александр
 Александр


Разработчик Offline Client
ICQ: 204034 
Вопросов: 106
Ответов: 1919
      
 Профиль |  | #6
       
Добавлено:  29.09.04 17:07
       
    
       
  
А почему бы просто не прибавлять то число (40)??
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 7 
      
Автор ответа: Александр
 Александр


Разработчик Offline Client
ICQ: 204034 
Вопросов: 106
Ответов: 1919
      
 Профиль |  | #7
       
Добавлено:  29.09.04 17:10
       
    
       
  
Или один... Я в математике щас не очень  
    