"Sri Lanka are playing very good cricket at the moment and are always difficult opponents at home," Dravid told a media conference ahead of the August 14-29 series in the Sri Lankan capital.
"And let's not forget South Africa. They are not the number two team in the world for nothing. Any side that chases down a 400-plus score has to be very explosive."
South Africa's last One-dayer in April saw them surpass world champions Australia's 434-4 off the penultimate ball in a sensational one-wicket win at the Wanderers in Johannesburg.
Herschelle Gibbs, who smashed 175 off 111 balls in that match, will spearhead the South African batting in the absence of the injured duo of captain Graeme Smith and star all-rounder Jacques Kallis.
The depleted Proteas were swept aside 0-2 in the recent Test series against Sri Lanka, giving the hosts a boost ahead of the high-profile triangular.
Dravid admitted Sri Lanka will be different rivals from the side that India thrashed 6-1 at home last year.
"We had a great series against them last year, but that does not give us any advantage," he said. "It's a new series, a new game and we will have to be at our best to win.
"Sri Lanka has been pretty strong at home in the last few years and are also playing good cricket abroad. Their confidence will be very high going into the series.
"I think the England tour turned their team around," said Dravid, referring to Sri Lanka's tour earlier in the summer when they fought back to draw the Test series 1-1 and blanked England 5-0 in the One-dayers.
"They have some class batsmen - and then they have Murali. He is a great bowler whether he is playing Test cricket or One-day cricket.
"We have to look at ways to score against him. We have had the better of him a few times and he has done well on other occasions, so it should be a good contest between bat and ball."
Prolific off-spinner Muttiah Muralitharan grabbed 22 wickets in the two Tests against South Africa to take his tally to 657 wickets, second behind Australian world record holder Shane Warne's 685.
India, who arrived here on Thursday night, will play two practice matches against local teams on Saturday and Sunday.
India's first match is against Sri Lanka next Wednesday after Monday's opener between South Africa and the hosts.
Heavy rains, meanwhile, washed out the practice matches Sri Lanka and South Africa were scheduled to play on Friday.
Bad weather has also been forecast for next week.